完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
前言
本章接着上一章串口实验的内容,讲串口的中断实验。中断一般为接收中断,即将函数发送后利用中断的方式进行接收。 一、串口中断 上一章在STM32 CUBEMX的配置过程中,已经开启了串口的中断。串口的中断包括发送中断(不常用)和接收中断。一般在写一个大型的工程文件时,串口需要配合DMA使用,用来增加cpu的处理效率,此时暂时不讲。本章主要利用串口中断来实现数据的接收。本章的实验效果为利用串口2进行数据发送,利用串口1进行数据接收,再利用串口1将数据发送到com口打印出来进行实时显示。本章为仿真效果,若在stm32F103的板子上运行注意IO口的对应,如果实现两个板子的通信注意两个板子需要共地,即将两个板子的GND连接在一起。 二、使能串口中断 加入串口中断使能函数 每次进入串口中断函数hal库会自动取消中断函数使能,此时需要再次使能函数。 uint8_t axbuffer[5]; HAL_UART_Receive_IT(&huart1, axbuffer, 5); 三.加入主函数 四.寻找中断回调函数 本章所引入的串口中断,触发方式为收到数据时,触发中断,进入中断函数。如图所示,为串口中断函数,选中函数点击鼠标右键选择go definition可以进入到函数内部。 加入中断回调函数 代码如下(示例): uint8_t buffer1[5]; void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)//中断回调函数 { buffer1[0] = axbuffer[0]; buffer1[1] = axbuffer[1]; buffer1[2] = axbuffer[2]; buffer1[3] = axbuffer[3]; buffer1[4] = axbuffer[4]; HAL_UART_Transmit(&huart1, buffer1, 5, 999); HAL_UART_Receive_IT(&huart1, axbuffer, 5);//再次使能 } 四.Proteus仿真或者烧录可直接看到效果。 注意利用串口1和串口2通信时IO口的对应关系,本章例程为由uart2的PA2发送,由串口1的PA10进行中断接收,PA10-PA2。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1369 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1363 浏览 1 评论
786 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
565 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1405 浏览 2 评论
1762浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
485浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
422浏览 3评论
415浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
390浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-29 22:19 , Processed in 0.929524 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号