硬汉嵌入式论坛

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

求助STM32L496动态切换主频,串口+DMA发送没有问题 ,但是在接收的时候会进入IDLE中断

[复制链接]

2

主题

4

回帖

10

积分

新手上路

积分
10
发表于 2024-12-26 17:41:02 | 显示全部楼层 |阅读模式
有emWin 的GUI显示,STM32L496芯片 主频设置为16M ,在显示时切换为高频80M,GUI_EXEC显示完后 再切换回16M
但是会影响到串口,
串口+DMA发送没有问题 ,但是在接收的时候会进入IDLE中断 但是 没有数据,DMA通道传输的也是0
有大佬知道哪里的问题吗
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117529
QQ
发表于 2024-12-27 07:18:35 | 显示全部楼层
当前的程序如何保证在切换主频期间,不会收到数据。

以及切换主频后,串口重新配置没,时钟要重新配置。
回复

使用道具 举报

2

主题

4

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2024-12-27 10:04:05 | 显示全部楼层
是通过Modbus读取寄存器数据的,有发送命令  才会有回复,在切换主频时 应该是没有接收吧
串口和时钟没有重新配置 我待会试一试
尝试了 加入了 USART的RXNE中断,
在串口回调函数中  读取了一个字节数据
        if (LL_USART_IsActiveFlag_RXNE(USART2) && LL_USART_IsEnabledIT_RXNE(USART2))
        {
                *u2RxBuf = LL_USART_ReceiveData8(USART2);
        }
就 暂时好了  不知道有没有什么隐患
硬汉哥 这是怎么回事
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117529
QQ
发表于 2024-12-28 07:42:54 | 显示全部楼层
qxyxx 发表于 2024-12-27 10:04
是通过Modbus读取寄存器数据的,有发送命令  才会有回复,在切换主频时 应该是没有接收吧
串口和时钟没有 ...

1、能保证切换时钟期间,没有数据接收就行。
2、这个读取操作同时兼具了清除标志位的作用,有可能这个问题。
回复

使用道具 举报

2

主题

4

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2024-12-30 09:22:47 | 显示全部楼层
感谢硬汉哥
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-12 13:48 , Processed in 0.053322 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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