MBED开发UART输出到PC的串口
时间:10-02
整理:3721RD
点击:
【NUCLEO-F412ZG试用体验】实验五 MBED开发UART输出到PC的串口
先查看用户手册,看看PinNames.h找出合适的串口,PA_2,PA_3适合本实验,当然其他许多IO口都支持USRT。
采用MBED启用串口,需要打开RawSer1al.h文档,按照其中的案例开始设置;
首先在main.cpp的前边定义对象:
//define UART
RawSerial prtOut(PA_2,PA_3);//TX,RX
后边的注释说明PA_2是TX,PA_3是RX以便后续连接USB串口连线。
接着在ioInit()函数中声明波特率:
prtOut.baud(115200);
这样prtOut就是一对串口,可以用115200bps传输或接收数据了,在main()的循环体中,将2路ADC采样的数值,2路PWM的周期,以及采用中断方式2路检测脉冲数都从UART通过USB串口转接器输出到PC串口终端显示出来,循环体中加入:
采样完2路ADC之后加上:
prtOut.printf("A0=%4f A1=%4f ",val0,val1);
2路PWM周期输出到PWM计数器后加上:
prtOut.printf("PW0=%.3f PW1=%.3f ",dut0,dut1);
由于2路检测脉冲由中断函数完成,因此在输出到LCD现实之前加上:
prtOut.printf("PS14=%2d PS15=%2d\r\n",ps14,ps15);
结果见照片图51,图52
看图52,PS14中断计数为固定数值——实际上已加了时钟清除计数值,实验四输出的是100Hz,本时钟为0.5秒清除数据,应该测到的是50个脉冲才对,但实际显示是50~51两个数值,看来检测函数延时不够。
先查看用户手册,看看PinNames.h找出合适的串口,PA_2,PA_3适合本实验,当然其他许多IO口都支持USRT。
采用MBED启用串口,需要打开RawSer1al.h文档,按照其中的案例开始设置;
首先在main.cpp的前边定义对象:
//define UART
RawSerial prtOut(PA_2,PA_3);//TX,RX
后边的注释说明PA_2是TX,PA_3是RX以便后续连接USB串口连线。
接着在ioInit()函数中声明波特率:
prtOut.baud(115200);
这样prtOut就是一对串口,可以用115200bps传输或接收数据了,在main()的循环体中,将2路ADC采样的数值,2路PWM的周期,以及采用中断方式2路检测脉冲数都从UART通过USB串口转接器输出到PC串口终端显示出来,循环体中加入:
采样完2路ADC之后加上:
prtOut.printf("A0=%4f A1=%4f ",val0,val1);
2路PWM周期输出到PWM计数器后加上:
prtOut.printf("PW0=%.3f PW1=%.3f ",dut0,dut1);
由于2路检测脉冲由中断函数完成,因此在输出到LCD现实之前加上:
prtOut.printf("PS14=%2d PS15=%2d\r\n",ps14,ps15);
结果见照片图51,图52
看图52,PS14中断计数为固定数值——实际上已加了时钟清除计数值,实验四输出的是100Hz,本时钟为0.5秒清除数据,应该测到的是50个脉冲才对,但实际显示是50~51两个数值,看来检测函数延时不够。
串口助手显示的数据
单片机通过uart连接到PC机