STM32F1基本配置2.串口的中断配置

简介

STM32F1基本配置2.串口的配置和常用函数,侧重于即配即用。
因此不会讲述太多原理性的东西,希望做到即拿即用的效果。

串口简介

串口是MCU重要的外部接口,用于数据传输,也是开发中重要的调试手段。
STM32的串口资源丰富,支持多种通讯模式,具有DMA等。
串口的参数有波特率,停止位等。
由于这里侧重于即配即用,更多详细的内容可自行查阅。

串口配置相关知识

至于串口的波特率等相关参数的知识,网上已经有很多资料可自行查阅。

在这里说一下使用printf打印串口的知识:
由于是在MCU上运行的程序,所以无法像写C语言一样直接使用printf。
要想使用printf打印串口则需要改写fputc函数,如下:
int fputc(int ch, FILE *f)
	{
         
	  USART_SendData(USART1, (u8)ch);//发送一个字节数据到串口
	  //等待发送完毕
	  while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
	  {
     
	  }
		return ch;
	}
然后是串口中断的知识:
常用的串口中断有RXNE(读寄存器非空)和TC(发送完成)。
当使能了这两个中断
如:USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
       USART_ITConfig(USART1, USART_IT_TC, ENABLE);
只要产生读寄存器非空和发送完成的事件就会进入到中断函数
void USART1_IRQHandler(void)里面去执行,

一般进入中断函数后先判断是哪种中断(只要产生中断就进入这个中断函数),
判断是哪种中断:USART_GetITStatus(USART1, USART_IT_RXNE)

在出中断函数前要擦除中断标志:
USART_ClearITPendingBit(USART1, USART_IT_RXNE);

串口无中断配置

GPIO_InitTypeDef  GPIO_InitStructure;      //用来配置USART对应引脚的结构体
USART_InitTypeDef USART_InitStructure;     //用来配置USART的结构体

  //开启串口A的时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); 
 //开启串口对应端口组的时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
  
  //配置USART的输出引脚
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值