完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
简述
实际开发过程中,DMA通道全部占用,余下串口无DMA使用,改用非DMA方式接收数据。 配置过程 MCU使用STM32F427,串口配置用图说明(偷个懒)。 在主函数初始化中,除开cube自动生成的串口初始化外,还需额外调用指明接收buffer[size]和使能空闲中断接收。 HAL_UART_Receive_IT(&huart8,recv_buffer, USART_RX_SIZE);//指明接收buffer和size __HAL_UART_ENABLE_IT(&huart8, UART_IT_IDLE);//开启空闲中断 /* 中断接收数据处理过程 */ void recv_handle(UART_HandleTypeDef *huart) { uint16_t length = 0; if ( __HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE)) { __HAL_UART_CLEAR_IDLEFLAG(huart); if (huart->RxState == HAL_UART_STATE_BUSY_RX) { /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); /* At end of Rx process, restore huart->RxState to Ready */ huart->RxState = HAL_UART_STATE_READY; } length = USART_RX_SIZE - huart->RxXferCount; //数据处理,写入缓存区 for (uint8_t i; i < length; i++) { printf("%d", recv_buffer); } recv_flag = true; HAL_UART_Receive_IT(huart, recv_buffer, USART_RX_SIZE); } } |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1617 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1543 浏览 1 评论
977 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
683 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1595 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
644浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
531浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
504浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 07:46 , Processed in 1.725065 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号