目录
- 一、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进行处理,非常感谢!