GPIO驱动LED灯是入门基本功,我们先熟悉一下RD8Tx的GPIO。首先我们打开他的数据手册:https://www.rdsmcu.com//uploads/doc/RD8T37x%E7%B3%BB%E5%88%97%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C.pdf
RD8T37 系列提供了最多 46 个可控制的双向 GPIO 端口,输入输出控制寄存器用来控制各端口的输入输出状态当端口作为输入时,每个0 端口带有由 PXPHy 控制的内部上拉电阻。此 46个10 同其他功能复用,其中 P3 可以过设置输出 1/4VDD或 1/3VDD 的电压,可用来作为LCD 显示的 COM 驱动。I/O 端口在输入或输出状态下,从端口数据寄存器里读到的都是端口的实际状态值。
强推挽输出模式下,能够提供持续的大电流动驱动:
除 P04/P05/P06 之外的IO 驱动能力为: 大于 10mA 的输出高,大于 50mA 的输出低。
P04/P05/P06 驱动能可达到: 大于 20mA 的输出高,大于50mA 的输出低。
强推挽输出模式的端口结构示意图如下:
开发板上的板载LED灯,我们选用P3.1来做为显示输出,我编写了有史以来最简单的main.c代码如下:
sfr P3 = 0XB0; //P3口数据寄存器
sfr P3CON = 0XB1; //P3口输入/输出控制寄存器
void main(void)
{
P3CON |= 0x02; //设置 P3.1 为推挽输出
P3 = 0x02; //点亮P31
while(1);
}
编译后代码大小如下,是我有史以来最小的一个代码块了吧。
下载到开发板后,板载的P31点亮:
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !