RT Thread中修改串口的波特率等参数
通过 control 接口修改。在修改缓冲区大小时请注意,缓冲区大小无法动态改变,只有在 open 设备之前可以配置。open 设备之后,缓冲区大小不可再进行更改。但除过缓冲区之外的其他参数,在 open 设备前 / 后,均可进行更改。
代码片
.
struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT;
rt_device_open(serial, RT_DEVICE_FLAG_INT_RX);
//在打开串口设备之后对其参数进行修改
config.baud_rate = BAUD_RATE_9600;
if(RT_EOK != rt_device_control(serial, RT_DEVICE_CTRL_CONFIG, &config))
{
rt_kprintf("change %s failed!\n", uartname);
}
上诉代码可以将串口1的波特率修改为9600
下面的代码是串口默认的参数
/* Default config for serial_configure structure */
#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 \
}
上面所有的参数都可以通过上述的方式进行修改,要注意的是 RT_SERIAL_RB_BUFSZ
参数需要在串口打开之前进行修改!!!!!!