RT-Thread学习之路--裸串口程序,还是采用STM32F103RC的正点原子mini板
串口使用步骤:
这里我采用的是串口2做实验
(一)扫描发送数据
首先,需要在ENV选项里面,把串口2的选项打开
其次,查找串口设备:serial = rt_device_find("uart2"); serial为自己定义的串口句柄,函数rt_device_find为查找串口,获得串口的配置信息。
再次,修改参数配置:
config.baud_rate = BAUD_RATE_9600; //修改波特率为 9600
config.data_bits = DATA_BITS_8; //数据位 8
config.stop_bits = STOP_BITS_1; //停止位 1
config.bufsz = 128; //修改缓冲区 buff size 为 128
config.parity = PARITY_NONE; //无奇偶校验位
config结构体变量是自己定义的,一开始的时候可以设置为默认数据 RT_SERIAL_CONFIG_DEFAULT;该默认数据是115200,8,1,64,NO,可以在程序中找到默认定义:
#define RT_SERIAL_CONFIG_DEFAULT \
{ \
BAUD_RATE_115200, /* 115200 bits/s */ \
DATA_BITS_8, /* 8 databits */ \
STOP_BITS_1, /* 1 stopbit */ \
PARITY_NONE, /* No parity */ \
BIT_ORDER_LSB, /* LSB first sent */ \
NRZ_NORMAL, /* Normal mode */ \
RT_SERIAL_RB_BUFSZ, /* Buffer size */ \
0 \
}
定义的config结构体变量就是可以根据自己需要进行设置。
然后打开串口设备:
rt_device_open(serial, RT_DEVICE_FLAG_INT_RX); 这个函数第一个参数为自己定义的串口句柄,第二个参数与定义的模式RT_DEVICE_FLAG_INT_RX--中断接收及轮询发送模式打开串口设备
这样, 自己写一个回调函数就可以进行数据收发了。