RT Thread中修改串口的波特率等参数

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参数需要在串口打开之前进行修改!!!!!!

你可能感兴趣的:(自我总结记录)