Terry_Yuan的技术专栏

Stay hungry, stay foolish.

[Linux项目实践] 物联网单板测试之任务一:实现流水灯

完成单板代码

/*任务1:实现流水灯*/

步骤:

1.1、找到单板电路图(FS_11C14 V3.0.pdf)上要实现的流水灯的LED灯,即LED1LED2

1.2、找到LED1LED2对应MCU上的寄存器接口,即LED1对应PIO3_0LED2对应PIO3_1

1.3、查找MCU芯片资料(LPC1111_12_13_14 Datasheet R3.pdf)对应寄存器相关技术参数

由芯片资料可知PIO3是一个12bitI/O寄存器

当其设定为0时,是为输出

当其设定为1时,是为输入

1.4、不知道代码怎么写?参考下面speaker的代码

由此两行代码我们猜测可知

void GPIOSetDir( uint32_t portNum, uint32_t bitPosi, uint32_t dir )

{

   if(dir)

LPC_GPIO[portNum]->DIR |= 1<<bitPosi;

   else

LPC_GPIO[portNum]->DIR &= ~(1<<bitPosi);

}设置GPIO口的输入输出

void GPIOSetValue( uint32_t portNum, uint32_t bitPosi, uint32_t bitVal )

{

   LPC_GPIO[portNum]->MASKED_ACCESS[(1<<bitPosi)] = (bitVal<<bitPosi);

}设置GPIO口输入或输出的高电平或者低电平

1.5、此处,我们首相将我们的两个LED1LED2点亮

代码编译,烧录后结果LED1LED2均可点亮

1.6、实现流水灯,那么这里我们使用一个for循环和if判断来实现

代码编译烧录后可实现LED1LED2的流水灯

阅读更多
个人分类: Linux项目实践
上一篇[Linux驱动开发] mini2440开发板u-bbot移植总结
下一篇[Linux项目实践] 物联网单板测试之任务二:操作风扇
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭