STM32F103串口收发

本文介绍了STM32F103串口通信的基础知识,包括串口四要素和数据帧格式,并详细讲解了串口初始化配置,特别是中断优先级的设置。通过中断服务程序实现接收端功能,同时探讨了printf在串口助手中的应用。代码仓库链接见文末。
摘要由CSDN通过智能技术生成

串口:标准串口 异步串行全双工 通信速度由波特率决定

异步通信:通信双方不共用同一条时钟线,双方通信速度由自己决定(通信需要双方的通信速度保持一致)
串行通信:通信双方只有一条数据线
全双工通信:任意时刻,通信双方可以发送与接收数据。双线单向。
串口四要素:波特率,数据位,停止位,奇偶校验位(校验准确率很低50%以下,一般选择禁止)
标准串口的数据帧格式:
1bit起始位+5~8bit数据位+奇偶校验位+ 1~2bit的停止位
串口初始化配置:只需要围绕这串口四要素进行配置即可

发送采用普通模式,接收端采用中断服务程序。

1、代码及解析

1.开时钟USART1和GPIOA组时钟

//1.开时钟USART1和GPIOA组时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_USART1,ENABLE);	
GPIO_InitTypeDef GPIO_InitStruct;						//定义结构体变量
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;			//配置为复用推挽输出,即能开启高电平也能开启低电平
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9;					//选定管脚9
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_2MHz;			//输出速度为2MHZ
GPIO_Init( GPIOA, &GPIO_InitStruct);					//调用初始化函数

//2.初始化USART1

   USART_InitTypeDef USART_InitStruct;
   //波特率
	USART_InitStruct.USART_BaudRate = brr;	
	//硬件流控制				
	USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;	//禁止硬件流控
	//USART_Mode 指定了使能或者失能发送和接收模式
	USART_InitStruct.USART_Mode = USART_Mode_Tx|USART_Mode_Rx;	//全双工通信,发送接收使能		
	//奇偶校验			
	USART_InitStruct.USART_Parity = USART_Parity_No;		//禁止奇偶校验
	//停止位
	USART_InitStruct.USART_StopBits = USART_StopBits_1;		//1个停止位
	USART_InitStruct.USART_WordLength = USART_WordLength_8b;		//8bit数据位
	USART_Init(USART1, &USART_InitStruct);

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梨花落-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值