STM32自学之串口中断模式

本文记录了作者自学STM32过程中,关于串口中断模式的实践和遇到的问题。通过中断配置和串口初始化,作者强调了在开启中断使能时需要注意的细节,以及在中断处理函数中遇到的读取数据异常问题,最终发现换行字符导致的困扰。通过分享这些经验,希望能促进STM32嵌入式开发的学习交流。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    今天是自学STM32的第7天了,之前的流水灯,按键,查询方式串口,PWM,计数器和红外有时间再补上来吧,先从今天调试的中断式串口写起吧。

    事先说明,写此博客只是为了记录自己的自学历程,由于水平极其有限,所以很多理解可能是错的,欢迎大家积极指出,让我们一起在嵌入式的开发上向前进。

   我所使用的是神舟三号学习开发板,芯片型号是STM32F103ZE。功能很齐全了,作为初期自学用绰绰有余。

   串口的printf在STM32程序调试过程中,确实可以起到实时跟踪程序进程的作用,但是经过昨天的红外和今天的中断式串口程序的坑爹BUG之后,深深感觉,没事还是不要加printf了,特别是在待处理事件的时间频率很高时,如昨天的红外调试时,信号的解码在ms级别,在加了printf和不加printf时,所解码的结果相差十万八千里。

  好了,回到正题,先上今天的中断式串口程序吧。

  以下是串口配置函数,我单独写了一个头文件,仅贴出核心部分。

void USART1_Configuration(void)
{
   //定义GPIO,,NVIC,USART结构体
   GPIO_InitTypeDef GPIO_InitStructure;
   NVIC_InitTypeDef NVIC_InitStructure;
   USART_InitTypeDef USART_InitStructure;
   //初始化系统时钟
   SystemInit();
//   //调试用指示灯 
//   RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOF, ENABLE);   //首先是开调试用LED灯的GPIO

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值