This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

【TI 测评】MSP432P401R UART串口硬件一致性测试(数据位的波形与波特率确认)

MSP432P401R  UART串口硬件一致性测试(位的波形与波特率确认)

 

继上次发了定时器一致性测试

https://e2echina.ti.com/question_answer/microcontrollers/other_mcu/f/23/t/179596

我们继续进行MSP432P401R  UART串口硬件一致性测试

这次我们继续拿TI提供的例程进行测试,还是outofbox_msp432p401r这个例程,

路径在这里:

我们先来理解这个中断函数里面它所干的事情,只有分析明白我们才能利用这个代码,

串口中断里面收到数据会放到receiveByte这个变量里面去,如果我们通过串口助手发送给串口一个字节,

那么MSP432P401R会返回一个字符串A,并且把ACK这个标志位置位,继续发送包括有START的字符串,

那么这个字符串会覆盖第一个字符串作为首个字符串,并且bytesReceived通过溢出的方式清零,

如果在发送1或者两个或者3个字节,那么会点亮相应的LED灯,超过3个字节,就是设置亮灯的时间,

到bytesReceived收到6个的时候标志位ack清零,循环继续发送A.

我的理解大概就是这样.

 

有了上面的理解我们就好办事了,下面我进入正题UART串口硬件一致性测试.

我们怎么测试呢,之前的理解我们知道,

只要我们发送任意字符串,那么串口就会回复A,

我们就利用串口助手来发送给串口,

 

OK,这里成功回复了一个字符串A,这个我们通常叫握手信号是不是.

现在我们连上示波器

 

在示波器上我设置50ms进行触发抓取信号,

在板子发送A的时候示波器成功触发,

我们放大

到了这里就不陌生了吧,

8N1的模式,字符A=0x41,二进制为0100 0001

在示波器上,最左边一个低电平表示0,起始位;

然后依次是1000 0010,

最后一位就是8N1的那个1,

正好和发送的数据最高位和最低位反过来.

这就是所谓的LSB.

 

下面我们来计算波特率

我们将图再一次的放大,

大家看到了吗,每一位的时间是8.7us,我们来计算一下波特率,1000000/7.8=114942

约等于115200,比较率为%99.77,这个结果是OK的.

测试结束,代码中为了改变亮灯的效果,把库改成了代码库,这样可以清楚的看到库里面的函数,附上源码,供大家参考.

0871.UART_TEST_msp432p401r.zip