硬汉嵌入式论坛

 找回密码
 立即注册
查看: 681|回复: 2
收起左侧

[STM32CubeMX] STM32CubeMX生成STM32G030F6P6代码的问题

[复制链接]

1

主题

23

回帖

26

积分

新手上路

积分
26
发表于 2022-12-14 17:08:29 | 显示全部楼层 |阅读模式
使用STM32G030F6P6做了个小项目,使用了串口空闲中断+DMA接收数据。期间发现总是接收不到数据,排查了配置代码,也调整了DMA优先级和DMA接收缓冲区等等能想到的,均以失败告终。之后对着以前代码发现DMA初始化函数都是放在需要用到的外设初始化前面,就尝试把DMA初始化放在了串口初始化前面,发现居然正常了。而Cubemx默认生成的stm32g030的工程是放在外设初始化后面的。。这应该算是CubeMX的坑吧?特此记录一下。



收不到数据.png
上面这个是cubemx生成的代码,无法使用DMA接收数据。换成下面图片中的初始化就可以正常接收数据了


收到数据.png




回复

使用道具 举报

19

主题

371

回帖

428

积分

高级会员

积分
428
发表于 2022-12-14 17:28:50 | 显示全部楼层
CubeMX只是提供初始化接口而已,先后次序要自己定
1. DMA要先初始化
2. 然后UART才能使用DMA
回复

使用道具 举报

4

主题

117

回帖

129

积分

初级会员

积分
129
发表于 2022-12-14 18:09:07 | 显示全部楼层
好像串口初始化会调用msp函数,里面包含了端口GPIO和DMA中断的一些处理。若是后面DMA再初始化就会改变原先已经设置的内容了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 23:57 , Processed in 0.159333 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表