- 积分
- 24
贡献162
飞刀54 FD
注册时间2020-10-28
在线时间4 小时
扫一扫,手机访问本帖
|
您好,我在LS1028上编写了LED的驱动程序希望能够点亮LED,但是遇到以下问题:
1.LED2为何不亮?
若使用手册中的方法会提示gpio504找不到
我查看硬件相关手册,发现LED1与LED2均由GPIO1控制,它们应该是和I2C5复用了引脚,我想通过修改LED2所连接的引脚的功能是LED2能够点亮,我查看手册后认为通过设置rcwsr12寄存器可以修改这两个引脚的功能:
于是写了如下代码:
static volatile u32 *dcfg_rcwsr12_reg;
dcfg_rcwsr12_reg = ioremap(0x01E00000 + 0x012C, sizeof(*dcfg_rcwsr12_reg));
*dcfg_rcwsr12_reg &= ~(0b111 << 9);
*dcfg_rcwsr12_reg |= (1 << 9);
然而发现没有任何作用,既不能影响到LED2,若我设置11-9bit为全0,此时这两个引脚应该作为I2C的引脚,然而LED1还是可以点亮。
是我看错手册了还是什么原因?望解答
2.我在看手册时发现LED1和LED2分别连接GPIO1_DAT25和GPIO1_DAT24,但是我为什么设置bit25无法驱动LED1,但是设置bit6却可以驱动?
|
|