jiangshan1xiao 发表于 2025-3-7 15:26:00

关于32G8K64和32G12K64的串口3的DMA的问题

一旦开启UART3的DMA使能和发送功能之后,常用的整个单片机的运转速度就会降低将近10倍。
测量方法不是准确,就是用一个常规的dealy_ms()延时程序通过串口1发送一个字节的数据给stc-isp-v6.90H下载软件的串口助手,
在没有开启UART3的DMA使能和发送功能的时候,延时是正常的,一旦开启一次之后,延时就会变得很慢。
差不多变为原来延时时长的10倍吧。

不知道有没有小伙伴发现过同样的问题。UART2的DMA使用就没有发现过这个问题。

国芯人工智能 发表于 2025-3-7 15:28:00

关于STC32G8K64和STC32G12K64串口3的DMA使用问题,报告中提到开启UART3的DMA功能后,系统整体运行速度显著下降。初步分析可能涉及DMA配置不当或硬件资源冲突。建议检查以下几点:

1. **DMA配置**:确保DMA通道配置正确,优先级设置合理,避免与其他外设冲突。
2. **时钟源**:确认系统时钟和DMA时钟源配置无误,时钟分频设置合理。
3. **中断处理**:检查中断处理程序,确保DMA中断处理效率高,避免频繁中断影响系统性能。
4. **固件版本**:确认使用的固件版本是否为最新,可能存在已知问题已在新版本中修复。

建议进一步使用示波器或逻辑分析仪精确测量系统时钟和DMA操作时序,以定位具体问题。同时,参考官方技术手册和社区反馈,获取更多技术支持。

[本文内容由国芯人工智能辅助生成,仅供参考]

国芯人工智能 发表于 2025-3-7 15:33:00

关于STC32G8K64和STC32G12K64串口3的DMA问题,您提到的现象可能是由于DMA传输过程中对系统资源的占用或中断处理机制导致的性能下降。建议从以下几个方面进行排查和优化:

1. **DMA配置检查**:确保UART3的DMA配置正确,包括缓冲区大小、传输模式等,避免不必要的资源占用。
2. **中断优先级**:检查DMA中断的优先级设置,确保其不会阻塞其他关键任务的执行。
3. **时钟配置**:确认系统时钟和UART波特率的配置是否合理,避免因时钟问题导致性能下降。
4. **代码优化**:优化DMA传输的代码逻辑,减少对主循环的干扰,例如使用轮询替代频繁中断。

建议使用示波器或逻辑分析仪精确测量系统性能,进一步定位问题根源。若问题持续,可联系STC技术支持获取更详细的解决方案。

[本文内容由国芯人工智能辅助生成,仅供参考]

DebugLab 发表于 2025-3-7 15:41:22

检查一下是不是频繁进入中断或中断内执行耗时操作造成的

jiangshan1xiao 发表于 2025-3-7 15:53:35

没有,就用最简单的程序做的测试,排除了其他干扰。我感觉是硬件问题。

jiangshan1xiao 发表于 2025-3-7 15:54:14

DebugLab 发表于 2025-3-7 15:41
检查一下是不是频繁进入中断或中断内执行耗时操作造成的

目前就用最简单的程序做的测试,应该排除了其他干扰。我感觉是硬件问题。

jiangshan1xiao 发表于 2025-3-7 15:59:26

国芯人工智能 发表于 2025-3-7 15:28
关于STC32G8K64和STC32G12K64串口3的DMA使用问题,报告中提到开启UART3的DMA功能后,系统整体运行速度显著 ...

这个有可能是硬件问题吗?官方的测试这个UART3的DMA不会影响代码执行时间吗?
页: [1]
查看完整版本: 关于32G8K64和32G12K64的串口3的DMA的问题