stm32学习笔记(串口通信)

一、数据通信的基础概念

1.串/并行通信

串行:数据逐位按顺序依次传输,效率低、抗干扰能力强;

并行:数据各位通过多条线同时传输,效率高、抗干扰能力弱。

2.单工/半双工/全双工通信

单工:数据只能沿一个方向传输;

半双工:数据可以沿两个方向传输,但需要分时进行;

全双工:数据可以同时进行双向传输。

3.同/异步通信

同步:共用一种时钟信号;

异步:无时钟信号,数据信号中加入起始位和停止位等一些同步信号。

4.波特率

每秒钟传送的码元(调制并编码后的信号)数。

5.USART

我们通常使用的是异步通信,异步通信规定传输的数据格式由起始位、数据位、奇偶校验位和停止位组成。

USART的寄存器

a.状态寄存器

b.数据寄存器

c.波特率寄存器

这个寄存器的位15:4存放的是USARTDIV(USART分频器除法因子)的整数部分,位3:0存放的是USARTDIV的小数部分。

6.通用和复用

通用:IO端口的输入或是输出由GPIO外设(ODR、BSRR等)控制;

复用:IO端口的输入或是输出由其它非GPIO外设(USART、DAC等)控制。

二、STM32串口通信概述

F103系列串口引脚分布情况

三、USART/UART异步通信配置步骤以及需要了解的函数

1.配置串口工作参数

HAL_UART_Init()  调用MSP回调函数

2.串口底层初始化

HAL_UART_MspInit()  配置GPIO,NVIC,CLOCK等 

3.开启串口异步接收中断

HAL_UART_Receive_IT()  以中断的方式接受指定字节的数据

4.设置优先级,使能中断

HAL_NVIC_SetPriority()、HAL_NVIC_EnablelRQ()

5.编写中断服务函数 

USARTX_IRQHandler()、UARTx_IRQHandler()

6.串口数据发送

USART_DR、HAL_UART_Transmit()  以阻塞的方式发送指定字节的数据 

四、用cubemx实现串口通信

1.配置HSE和时钟树 

2.配置串口初始化

Mode(模式)选择栏中:
Asynchronous异步通信
Synchronous同步通信
正下方分别是:
Baud Rate 波特率 115200
Word Length 传输数据长度 8
Parity 奇偶校验位 none
Stop Bits 停止位 1
发送和接收都使能

 

3.生成文件

(这里IDE应选择MDK-ARM V5)


 4.点击GENERATE CODE即可打开对应的keil 5文件

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值