完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
首先在主函数里执行发送中断或者接收中断函数: HAL_UART_Receive_IT(&UartHandle, (uint8_t *)RxBuf, 1); HAL_UART_Transmit_IT(&UartHandle, (uint8_t*)TxBuf, 14); 这两个函数主要是设置UartHandle结构体变量 当真正发生串口发送或接收中断时,首先执行的是_it.c文件的 void USARTx_IRQHandler(void) { HAL_UART_IRQHandler(&UartHandle); } 这里可以看到,他调用的是HAL_UART_IRQHandler(&UartHandle);这个函数 然后在这个函数里判断是执行接收中断函数:UART_Receive_IT(huart); 或者是执行发送中断函数:UART_Transmit_IT(huart); 或者是执行串口出错中断函数:HAL_UART_ErrorCallback(huart); 比如执行的是接收中断函数UART_Receive_IT(huart); 这个函数会把接收到到数据保存到开始HAL_UART_Receive_IT(&UartHandle, (uint8_t *)RxBuf, 1);函数设置的缓冲区里,保存完之后调用接收完成回调函数:HAL_UART_RxCpltCallback(huart); 而这个回调函数是用户通常处理接收到的数据用的函数。执行完这个函数,一次中断就完成了。如果已经接收完了当初HAL_UART_Receive_IT(&UartHandle, (uint8_t *)RxBuf, 1);中设定的个数的数据,就不再执行接收中断了,如果还想接收数据,就要再次执行HAL_UART_Receive_IT(&UartHandle, (uint8_t *)RxBuf, 1)函数。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1537 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1490 浏览 1 评论
910 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
654 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1538 浏览 2 评论
1845浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
596浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
499浏览 3评论
498浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
482浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-5 09:47 , Processed in 0.839933 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号