1.通信结构
设备内部一般使用TTL电平传输,设备之间使用RS232/RS485电平标准传输。
TTL : 短距离传输。逻辑1:2.4V~5V ;逻辑0:0V~0.5V
RS232/RS485 : 距离较长。 RS232: 1:-15V~3V ;0:3V~15V
串口参数:(1)波特率(常见 4800、9600、115200)每秒传输的位
(2)起始位 (硬件产生,无需配置)
(3)停止位
(4)有效数据位 8位或者9位
(5)数据校验位
2.串口配置步骤
(1)使能GPIO端口时钟。
(2)使能UART串口时钟。
(3)设置串口引脚为浮空输入。
(4)配置读写端为复用推挽输出和浮空输入。
(5)设置串口波特率、数据位、奇偶校验位、停止位。
(6)是否配置RTS和CTS这两个引脚为硬件控制流。
(7)配置串口的收发装置。
(8)使能UART串口。
2.1 USART 配置
rcu_periph_clock_enable(RCU_GPIOA); //使能GPIOA时钟
rcu_periph_clock_enable(RCU_USART0); //使能USART时钟
/* 设置PA0为浮空输入 */
gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_0);
/* 设置Tx 为复用推挽输出模式*/
gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_9);
/* 设置Rx为浮空输入模式 */
gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_10);
usart_baudrate_set(USART0, 115200U); //设置波特率
usart_word_length_set(USART0, USART_WL_8BIT); //设置数据位
usart_parity_config(USART0, USART_PM_NONE); // 设置奇偶校验位
usart_stop_bit_set(USART0, UASRT_STB_1BIT); //设置停止位
usart_hardware_flow_rst_config(USART0, USART_RTS_DISABLE); //禁用RTS
usart_hardware_flow_cts_config(USART0, USART_CTS_DISABLE); //无硬件数据流控制
usart_receive_config(USART0, USART_RECEIVE_ENABLE); //启用USART0接收
usart_transmit_config(USART0, USART_TRANSMIT_ENABLE); //启用USART0发送
3.GPIO的8种工作模式
3.1 输入模式
(1)浮空输入:GPIO_MODE_IN_FLOATING
(2)上拉输入:GPIO_MODE_IPU(上拉电阻开关闭合)
(3)下拉输入:GPIO_MODE_IPD(下拉电阻开关闭合)
(4)模拟输入:GPIO_MODE_AIN
3.2 输出模式
(5)开漏输出模式:GPIO_MODE_OUT_OD
(6)开漏复用模式:GPIO_MODE_AF_OD
(7)推挽式输出模式:GPIO_MODE_OUT_PP
(8)推挽式复用模式:GPIO_MODE_AF_PP
UART:通用异步收发器
USART:通用同步/异步收发器