ST意法半导体
登录
直播中
郭中
10年用户
1027经验值
擅长:存储技术
私信
关注
[问答]
CubeMX生成的C代码发出USART启动调用怎么办?
开启该帖子的消息推送
USART串口
MX 生成的 C 代码在 DMA 启动调用之前发出 USART 启动调用。我的代码只是回显 USART 收到的任何文本。不幸的是,回显数据(正确长度)全为零。UART 读取缓冲区初始化为零。
只需在 USART 启动调用之前放置 DMA 启动调用即可解决此问题!
这是怎么回事?看起来 DMA 代码打乱了 USART 代码设置的某些内容,但是什么?
回帖
(1)
韩刚龙
2022-12-27 09:51:06
> 根据您的回答,我假设在某些情况下,例如这个,启蒙的顺序是至关重要的。
我认为主要是这个 (DMA)。但可能还有其他人。
> 你能告诉我为什么会这样吗
UART 初始化修改 DMA 寄存器,这需要 DMA 时钟处于活动状态。时钟在 DMA 初始化中被激活。
对于它的价值,CubeMX 为我在一个新项目上生成了正确的顺序。可能您使用的不是最新版本,或者发生了其他问题。
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_DMA_Init();
MX_ETH_Init();
MX_USART3_UART_Init();
MX_USB_OTG_HS_USB_Init();
/* USER CODE BEGIN 2 */
> 根据您的回答,我假设在某些情况下,例如这个,启蒙的顺序是至关重要的。
我认为主要是这个 (DMA)。但可能还有其他人。
> 你能告诉我为什么会这样吗
UART 初始化修改 DMA 寄存器,这需要 DMA 时钟处于活动状态。时钟在 DMA 初始化中被激活。
对于它的价值,CubeMX 为我在一个新项目上生成了正确的顺序。可能您使用的不是最新版本,或者发生了其他问题。
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_DMA_Init();
MX_ETH_Init();
MX_USART3_UART_Init();
MX_USB_OTG_HS_USB_Init();
/* USER CODE BEGIN 2 */
举报
更多回帖
rotate(-90deg);
回复
相关问答
USART串口
是不是由STM8
cubeMX
生成
的
代码
?
2019-01-17
6948
使用STM32
CubeMX
配置串口中断后硬件没有反应
怎么办
?
2021-11-17
865
CubeMx
如何从命令行或使用脚本触发
代码
生成
?
2022-12-13
372
STM32CubeIDE
生成
和构建的
代码
无法
启动
定时器和系统怎么解决?
2023-01-11
208
使用
CubeMX
6为freeRTOS
生成
代码
的问题如何解决?
2023-01-31
209
在
CubeMX
代码
生成
中,DMA传输不起作用怎么解决?
2022-12-14
293
请问基于studio
cubemx
生成
的基本初始化
代码
会被使用吗?
2023-02-21
527
从studio中打开
cubemx
启动
调试会失败求大佬们帮忙看一下
2022-11-09
895
TouchGFX 4.18.0没有创建
CubeMX
文件
怎么办
呢?
2022-12-20
212
请问STM32
CUBEMX
如何实现
USART
的中断一直接收数据?
2018-11-26
3146
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分