
今天主要是来学习下mbed平台下,串口的使用方法。 同样的方法,还是在mbed编辑器下,main.cpp写入如图1所示的程序,然后编译后把bin文件复制到NUCLEO的U盘中,实现程序的下载,此时会发现板子上的绿色LED灯每一秒闪烁一次,程序中的SERIAL_TX和SERIAL_RX对应的管脚是PA2和PA3,将PA2和PA3连接到电脑串口调试工具,可以看到串口调试工具上显示如图2所示,即先显示“Hello World!”,然后每一秒显示一个字符串。9 T! K$ f" V& ~- [3 B3 J# K 程序分析:首先Serial pc(SERIAL_TX,SERIAL_RX):是把tx,rx设成Uart1的输出输入管脚 DigitalOut myled(LED1);就是把LED1对应的管脚设置为数字输出,对应电路板,就是PB13管脚,DigitalOut myled1(PA_12),这个是我把PA_12设置为输出,外部接了个LED。pc.printf():printf是pc类下的一个方法,它的作用和C语言中的printf是一样的。 串口对象还有getc和putc方法,作用就是从串口读取一个字符和向串口发送一个字符。 在主程序中试验这个方法:在while循环下加入pc.putc(pc.getc());就是将收到的数据发送出去。试验发现如图3所示,用串口发送数据后,串口显示数据,但是在串口没有发送数据时,串口也不会显示数据,这是因为pc.putc(pc.getc());的机制是有数据处理数据,没有数据就一直等待,所以导致下面的程序不会执行。 换种方法,使用串口中断方式:0 Z2 |2 {. B: F- {6 k C 程序如图5所示,也是使用了attach方法,它就是设置Uart中断所需要执行的用户自定义函数,也就是中断处理函数。这样就可以发现,如图6所示,如果串口没有发送数据,那么主程序中的程序会执行,如果串口有发送数据,那么把发送的数据显示出来。 其他的方法使用也是一样的,比如要设置串口的波特率,可以按照图7的方法就可以了。 |
在mbed平台上用的例程
波特率9600 连接好 也编译好了 但是串口助手一直没有收到数据
我看有人说要把板子上的两对TX/RX引脚用杜邦线对应连上. ]/ p; l. w" F) y# R# ^
我也照做了。。但是仍然没反应。。不知道你实验时在硬件连接上有什么要连的地方吗?
回复:【Nucleo板开发日志】+mbed平台---串口学习
【使用指南】社区论坛帖子如何直接显示图片 " V8 D$ Q3 K: g; A. ^
注意点击插入图片可以在帖子中,把图片直接显示出来
回复:【Nucleo板开发日志】+mbed平台---串口学习
RE:【Nucleo板开发日志】+mbed平台---串口学习
RE:【Nucleo板开发日志】+mbed平台---串口学习
回复:【Nucleo板开发日志】+mbed平台---串口学习
RE:【Nucleo板开发日志】+mbed平台---串口学习
RE:【Nucleo板开发日志】+mbed平台---串口学习
RE:【Nucleo板开发日志】+mbed平台---串口学习
回复:【Nucleo板开发日志】+mbed平台---串口学习
RE:【Nucleo板开发日志】+mbed平台---串口学习
RE:【Nucleo板开发日志】+mbed平台---串口学习
RE:【Nucleo板开发日志】+mbed平台---串口学习
回复:【Nucleo板开发日志】+mbed平台---串口学习
RE:【Nucleo板开发日志】+mbed平台---串口学习