ぉ沙皮狗的忧伤 发表于 2019-10-30 16:50:07

PS端通过寄存器点灯总结

本帖最后由 ぉ沙皮狗的忧伤 于 2019-10-31 10:02 编辑

1、先了解MIO的结构


2、具体操作方法


3、手册使用章节
   14章GPIO口的介绍
      
   B19章寄存器模块介绍
      
   B28章系统寄存器介绍
      

4、查看原理图
   MIO51这个。。。。。,我就是看了这里耽搁好几天时间,MIO51根本无法驱动,我也不知道这里LED灯是干啥的
      

   MIO7 PS端的LED灯,可以驱动

      

5、编写驱动代码


    步骤1申请设备号、创建类设备等等
    步骤2不需要重置,直接配置GPIO口时钟
    iowrite32(ioread32(led_CLK_2) | (0x1<<22), led_CLK_2);
   
   

   步骤3配置DIRM和OEN
   // 设置管脚功能为输出模式
   iowrite32(ioread32(GPIO_DIRM) | (0x80), GPIO_DIRM);
   //输出使能
   iowrite32(ioread32(GPIO_OEN) | (0x80), GPIO_OEN);
   

   


步骤4
//配置MIO 7管脚功能为上拉
iowrite32(0x00003600, MIO_PIN_7);

   

步骤5,输出数据   
方法一:
   //将输出数据写入MASK_DATA_2_MSW寄存器
   iowrite32(0xff7f0080, GPIO_DATA_MSW);

      方法二,
   //将输出数据写入DATA_0寄存器
   iowrite32(ioread32(GPIO_DATA_0) | (0x80), GPIO_DATA_0);
   
6、注意事项
①MASK_DATA_0_LSW寄存器高16MASK,为0的时候刷新对应pin脚的值,也就是低16位对应的数据


②注册MIO_PIN_07,GPIO手册中没有提及,但一定要配置,勿忘


③14章GPIO介绍第一条就是去配置GPIO_RST_CTRL寄存器,这个不用配




7、总结
   ①、懂得太少
   ②、不够细致
   ③、交流的人太少



ぉ沙皮狗的忧伤 发表于 2019-10-30 16:52:02

代码在附件中

uisrc 发表于 2019-10-30 19:31:25

{:1_144:}
页: [1]
查看完整版本: PS端通过寄存器点灯总结