串口通信(自学笔记)

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:通用同步/异步收发器

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值