本帖最后由 ぉ沙皮狗的忧伤 于 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、总结
①、懂得太少
②、不够细致
③、交流的人太少
|