完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
首先说一下过程,之前在F1,F0上使用DMA串口发送和接收数据,开启空闲中断接收不定长数据,都没有任何问题。后来用上了G030,使用串口1做的DMA收发,同样也没有问题。后来有一个项目,因为需要单片机有UID(G030没有UID),所以更换单片机为G071CB,使用CUBEMX做配置,串口1和串口2都使用DMA收发数据,结果串口2的收发没有任何问题,串口1发不出去数据,也接收不了数据,但是更改函数HAL_UART_Transmit_DMA( huart1,aTx1Buffer,4);为HAL_UART_Transmit_IT( huart1,aTx1Buffer,4);就可以正常收发,即串口1用DMA 无法收发,用中断方式可以收发,使用官方dome程序也无法收发,折腾了几天,无解,最后改成了中断收发了。
|
|
相关推荐
2个回答
|
|
楼主看代码中的MX_DMA_Init();这个函数位置,有没有将它放在前,在串口初始化前面。没有的话可以试一下看看。
|
|
|
|
有几种可能导致STM32G071的串口1无法使用DMA收发数据的问题:
1. DMA通道配置错误:可能是DMA通道的配置有误,导致数据无法正确传输。请检查DMA通道的配置是否正确,并确保正确设置了DMA传输的源地址和目的地址。 2. 缓冲区设置问题:在使用DMA传输数据时,需要正确设置缓冲区的地址和长度,以确保DMA能够正确传输数据。请检查缓冲区设置是否正确,并确保缓冲区地址和长度的设置与实际需求一致。 3. 优先级设置问题:在使用DMA传输数据时,需要设置正确的DMA通道和串口的优先级。请检查DMA通道和串口的优先级设置是否正确,并确保DMA通道的优先级高于串口的优先级。 4. 中断配置问题:DMA传输完成后,需要相应的中断来进行处理。请确保正确配置了相应的中断,并在中断处理函数中进行相应的操作,如清除标志位等。 5. 时钟配置问题:串口和DMA的时钟配置可能也会影响DMA传输的正常工作。请确保正确配置了串口和DMA的时钟,并使能相应的时钟使能位。 检查以上可能的问题,并根据具体情况逐一排查,可以帮助解决STM32G071串口1无法使用DMA收发数据的问题。如果仍然无法解决问题,可能需要进一步调试和排查硬件或软件相关的问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1548 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1493 浏览 1 评论
915 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
656 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1544 浏览 2 评论
1845浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
598浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
499浏览 3评论
501浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
483浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-6 05:42 , Processed in 0.656991 second(s), Total 50, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号