我使用的是Tiva C系列中的TM4C123C的板子,我想用它来测试其UART串口通讯是否能用。
首先利用正常的debug模式先进行调试,连接电源即可,让PC和板子可以进行串口通讯(使用的是energia软件进行的编程)。
(此图为板子与PC建立的串口通路,如若驱动没安装成功,可参考上篇文章)
(此图为烧写程序成功,说明串口可以进行通讯)。
然后查看板子引脚功能图。
可以看出它有5个可用UART串口通讯口,分别是1,2,3,5,7(即为TX和RX有5对)。我们拿其中一对进行测试,以5为例。
我用的是USB模块(它使用的就是UART协议)连接的板子(板子的电源一定要插着,不要拔掉,就上图那个黑色电源线。因为如果不插的话(此时就应该把模块的V5.0接上),我的电脑就会报unable to find any ICDC devices)。并插到电脑上.。将该模块GND与板子GND相接,PE_4(板子的)和TX接,PE_5(板子的)与RX接,V3.3和V5.0(模块的)不接(如果电脑识别不出来模块则可以接上其中一个,否则模块会变热。注:USB充电线提供5V电压。).下图为代码段,主要功能是输入a红灯亮,输入其他的红灯灭(通过Serial Monitor输入)。
char incomingByte='a';
void setup()
{
Serial5.begin(9600);
pinMode(RED_LED,OUTPUT);
// put your setup code here, to run once:
}
void loop()
{
if(Serial5.available()){
incomingByte=Serial5.read();
Serial5.println(incomingByte);
if(incomingByte=='a')
{
digitalWrite(RED_LED,HIGH);
}
else
{
digitalWrite(RED_LED,LOW);
}
}
// put your main code here, to run repeatedly:
}
我们正常使PC与板子进行串口通讯都是用Serial.begin,Serial.available,Serial.read,Serial.println(因为板子默认使用Serial进行串口通信,即下图上面的debug调试电源线)。但我们测试的是第5个UART口,所以我们用Serial5代替Serial(因为这样板子才会识别你到底要用那个引脚的哪个功能)。一定要用模块所对应的COM口来下载和传输数据,因为只有这样侧能达到测试UART串口通讯的功能。
PS:感谢学姐的悉心指导,让我又学到了这个知识。手动@蔡学姐。嘻嘻~