
2.cubumx配置串口,如下图![]() 3.配置DMA ![]() 4.配置中断 ![]() ![]() 5.生成代码后,添加空闲中断使能代码 __HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE);//使能idle中断 6.h743的DMA比较特别,他有几个内存区,默认的内存区与DMA不相连,所以定义buf的时候要定义到与DMA相连的地址上 ![]() ![]() ![]() 7.所以修改工程下的stm32h743xx_flash.icf文件,添加如何下画圈部分 ![]() 8.定义buf时这样定义: ![]() 9.串口DMA发送代码: if(HAL_UART_Transmit_DMA(&huart1,cbuffer,csize) != HAL_BUSY) 10.串口中断接收代码 HAL_UART_Receive_IT(&huart1, cbuffer, RX_BUF_SIZE); 11.中断处理 ![]() ![]() 12. usart1_Rx() ,usart1_Tx() 为加入了环形队列的发送接收接口函数 13.中断中不能调用ucosii先关的函数,例如信号量的处理等,加了暴力测试串口时会出错,查了下貌似和内核管理中断有关,这个玩意CPU_CFG_KA_IPL_BOUNDARY。但也尝试了中断加OSIntEnter() 和OSIntExit(),修改中断号范围>CPU_CFG_KA_IPL_BOUNDARY, 也不行。 ———————————————— 版权声明:鱼入大海_ |
【经验分享】STM32H7时钟
拷打cubemx【003】——找不到的芯片包
【STM32U3评测】SPIDMA发送
【2025·STM32峰会】GUI解决方案实训分享5-调通板载的NRF24L01 SPI接口并使用模块进行无线通信(发送和接收)
【STM32U3评测】实现双通道串口通信系统
【2025·STM32峰会】GUI解决方案实训分享4-使用MVP架构从硬件外设读取数据并显示到图形界面、从图形界面发送指令控制硬件外设
【2025·STM32峰会】GUI解决方案实训分享3-搭建空白TouchGFX例程并实现简单的功能(含硬件部分的串口打印)
【2025·STM32峰会】GUI解决方案实训分享2-编译运行TouchGFX咖啡机例程(含桌面仿真)
【2025·STM32峰会】+TouchGFX实现动态进度显示以及界面切换
【2025·STM32峰会】+使用TouchGFX快速创建GUI