stm32的串口实验编程

<·font color=00008b size=5 face=“楷体” >stm32串口通信:
1、处理器与外部设备通信的两种方式:
⋅ \cdot 并行通信
传输原理:数据各个位同时传输
优点:速度快
缺点:占用引脚资源多


⋅ \cdot 串行通信
传输原理:数据按位顺序传输
优点:占用引脚资源少
缺点:传输速度较慢



2、串行通信:
按数据传输方向:
单工:
数据传输只支持在一个方向上的传输


半双工:
允许数据在两个方向上的传输,但是,在某一个时刻,只允许数据在一个方向的传输,它实际上是一种切换方向的单工通信

全双工:
允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信的结合,它要求发送设备和接收设备都有独立的接收和发送能力


在这里插入图片描述
串行通信的通信方式:
同步通信:带时钟同步信号传输----SPI、IIC通信接口
异步通信:不带时钟同步信号传输----UART(通用异步收发器,单总线)一定要约定好波特率

在这里插入图片描述
STM32的串口通信接口:
⋅ \cdot UART:通用异步收发器
⋅ \cdot USART:通用同步异步收发器

大容量STM32F10x系列芯片,包含3个USART和2个UART.

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

UART框图分析
在这里插入图片描述
接收数据
在这里插入图片描述
发送数据在这里插入图片描述
波特率控制
在这里插入图片描述
波特率配置
在这里插入图片描述
控制寄存器SR和CR1
寄存器常用寄存器

常用的串口相关寄存器
⋅ \cdot USART_SR状态寄存器
⋅ \cdot USART_DR数据寄存器
⋅ \cdot USART_BRR波特率寄存器


SR是状态位寄存器
DR是数据位寄存器
在这里插入图片描述

BRR是波特率配置寄存器
在这里插入图片描述
波特率计算方法
在这里插入图片描述
常用库函数在这里插入图片描述
在这里插入图片描述
波特率
资产
停止位
奇偶校检位
模式
使能在这里插入图片描述
第一步
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能GPIOA口时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//使能串口时钟
第二步
GPIO端口模式设置在这里插入图片描述
GPIO_InitTypeDef GPIO_Initstruct;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能GPIOA口时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//使能串口时钟

GPIO_Initstruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Initstruct.GPIO_Pin=GPIO_Pin_9;//输出
GPIO_Initstruct.GPIO_Speed=GPIO_Speed_10MHZ;
GPIO_Init(GPIOA,&GPIO_Initstruct);

GPIO_Initstruct.GPIO_Mode=GPIO_Mode_IN_FLOATING;
GPIO_Initstruct.GPIO_Pin=GPIO_Pin_10;//输出
GPIO_Initstruct.GPIO_Speed=GPIO_Speed_10MHZ;
GPIO_Init(GPIOA,&GPIO_Initstruct);

第三步
串口配置在这里插入图片描述
第四步
使能串口在这里插入图片描述
如果要设置中断
首先中断分组配置
在misc.h里面找NVIC_PriorityGroupConfig()
即:
{
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
}
然后中断设置在这里插入图片描述
串口中断函数在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值