GD32替换STM32导致ADC卡顿问题解析

一、问题现象

由于前面STM32f103c8t6缺货,项目上的单片机临时替换为GD32,但是库函数什么的用的还是STM32的。项目中使用了ADC+DMA对氧气传感器进行采样,后来发现氧浓度在80%时,氧浓度会出现偶尔卡顿十几秒的情况,但是在90%,50%浓度测试就没有这个问题。

二、问题解决

网上搜索类似问题,发现有网友提到是GD32 ADC设计缺陷导致,将ADC时钟频率调低(即预分频改为DIV8)问题就解决了。经过测试问题确实得到了解决。

参考链接https://blog.csdn.net/world9999/article/details/131880773

三、问题原因分析

根据资料https://blog.csdn.net/zhoucheng97/article/details/105887153所述,STM32的ADC转换时钟不能大于14MHz。STM32F103c8t6最高时钟频率为72MHz,而GD32为108MHz。

72MHz进行6分频小于14MHz,而108MHz进行6分频大于14MHz,进行8分频之后就满足小于14MHz。

据此猜测,大概率是由于GD32的速度比STM32高,而两者内核又是一样的,从而导致了这个问题。

相关推荐
sramdram7 分钟前
国产32位mcu微控制器高速风筒方案
单片机·嵌入式硬件·32位mcu·mcu微控制器·国产32位mcu
单片机仿真设计15 分钟前
【proteus仿真】基于STM32单片机直流电机控制设计(仿真图+程序)
stm32·单片机·嵌入式硬件·proteus·毕设
天空'之城19 分钟前
单片机基础核心知识点汇总(十八)
单片机·嵌入式硬件
736c1 小时前
STM32-看门狗 10
stm32·单片机
虎王物联1 小时前
工业Modbus TCP协议深度实战:STM32 HAL库实现从机通信与数据上云
stm32·物联网·网络协议·tcp/ip·嵌入式
DevHub4 小时前
CANopen 教程:STM32 实现 CANopen 从站,3 个回调替代手写对象字典
c语言·驱动开发·stm32·单片机·嵌入式硬件·mcu
单片机仿真设计6 小时前
【proteus仿真】基于 STM32 农业大棚巡检小车 (仿真图+程序)
stm32·单片机·嵌入式硬件·proteus·毕设
Hello_Damon_Nikola8 小时前
AiP9M161个人护理产品方案从设计到实现
单片机·嵌入式硬件
智购科技无人售货机工厂8 小时前
2026自动售货机热敏打印模块集成:从串口驱动到小票自动裁切的工程实践~YH
android·stm32·单片机·嵌入式硬件·系统架构
736c9 小时前
STM32-PWR 09
stm32·单片机