stm32中断、DMA通信原理和编程方法的学习和实践

目录

  • 一、STM32通过中断来控制LED灯以及实现串口通信
    • 1.1 以HAL库的方式新建工程项目
    • 1.2 代码的编写
  • 二、STM32采用串口DMA方式,向上位机连续发送数据
    • 2.1 工程创建
    • 2.2 代码编写
  • 三、串口中断方式串口通信
    • 3.1工程设置
    • 3.2 代码撰写
    • 3.3串口助手通信
  • 四、总结
  • 五、参考

一、STM32通过中断来控制LED灯以及实现串口通信

思路:用stm32F103核心板的GPIOA端一管脚接一个LED,GPIOB端口一引脚接一个开关(用杜邦线模拟代替)。采用中断模式编程,当开关接高电平时,LED亮灯;接低电平时,LED灭灯。

1.1 以HAL库的方式新建工程项目

1.用stm32cubemx新建工程项目
2.选择stm32F103C8芯片
上面两个步骤可在我之前的博客里找到相应的图片,接下来直接来到设置

  • 配置RCC:

  • 将PB9选为外部中断触发器GPIO_EXTI,PA4是控制led灯的,将它选择为GPIO_output:

  • 设置PB9的GPIO mode

  • 配置时钟:
    选择PLLCLK,然后将后面的晶振频率最大值改为72M赫兹

  • 在main.c里的添加一个函数

二、STM32采用串口DMA方式,向上位机连续发送数据

2.1 工程创建

新建工程上文提到,此处省略,直接跳到配置

SYS设置:

2.2 代码编写

用keil打开刚才建的项目,
在main.c里编写代码:
定义缓冲区大小:

定义缓冲区和标志位:`

定义接收成功信息:

在while(1)中循环中发送成功信息和接收到的信息

编译成功生成.hex文件再借用Flymcu烧录软件进行烧录

设置串口
1)点击USART1
2)设置MODE为异步通信
3)基础参数:波特率为115200 Bits/s。传输数据长度为8 Bit。奇偶检验无,停止位1,接收和发送都使能
4)GPIO引脚设置 USART1_RX/USART_TX(这里一般自动设置好了)
5) NVIC Settings 一栏使能接收中断

添加开启接收中断的语句

四、总结

stm32用HAL库的方式实现一些功能,相比寄存器地址的方式更方便,用中断的方式实现点灯和测还口通信,收获了很多实践经验。

五、参考

链接:
https://blog.csdn.net/weixin_46129506/article/details/121119702pm=1001.2014.3001.5502
https://blog.csdn.net/qq_46467126/article/details/121055475
https://blog.csdn.net/as480133937/article/details/104827639/

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月20日
下一篇 2022年9月20日

相关推荐