|
首先先初始化- /* Enable clock and init GPIO outputs */
- LPC_CCU1->CLK_M4_GPIO_CFG = CCU_CLK_CFG_AUTO | CCU_CLK_CFG_RUN; //使能整个gpio总线 不像stm32 adc 每个bank都设置一下
- CCU_CLK_CFG_AUTO 先把自动使能打开,,好像可以自动打开总线和关闭,但是关闭前要先禁止ahb中线 ,跟功耗有关的东西还没有搞清楚。
- CCU_CLK_CFG_RUN这个就是使能了 跟32cmd一样。
- while (!(LPC_CCU1->CLK_M4_GPIO_STAT & CCU_CLK_STAT_RUN)); //还要查看状态位 看下有没有使能
- ------------------------------------------时钟结束
- [code] LPC_SCU->SFSPD_10 = 4; /* GPIO6[24] */
- LPC_SCU->SFSPD_11 = 4; /* GPIO6[25] */
- LPC_SCU->SFSPD_12 = 4; /* GPIO6[26] */
- LPC_SCU->SFSPD_13 = 4; /* GPIO6[27] */
- LPC_SCU->SFSPD_14 = 4; /* GPIO6[28] */
复制代码
因为它的gpio功能很强大,每一个GPIO最多有8个功能,所以它专门开辟一个寄存器scu来配置这个东西。相当于32里面的一个端口可以好多的复用功能。ps:好像lpc好像没有固件库 看起来很蛋疼。。。
-----------------------------------------功能选择结束
- LPC_GPIO_PORT->DIR[6] |= (led_mask[0] | led_mask[1] | led_mask[2] |
- led_mask[3]);// | led_mask[4])
复制代码
设置io的输入还是输出。问题就在这了。
const uint32_t led_mask[] = { 1UL << 28,
1UL << 27,
1UL << 26,
1UL << 25,
1UL << 24};
问题:这个真心搞不懂1ul是什么东西 DIR[6]和24到28这些数字是怎么对应到D10到D14这些端口的。
欢迎拍砖 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|