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高,而两者内核又是一样的,从而导致了这个问题。

相关推荐
老当益壮梁奶奶4 小时前
51单片机DS18B20温度传感器详解:单总线时序与C51驱动实现
笔记·stm32·单片机·嵌入式硬件·51单片机
Horn Still Sounds4 小时前
ARM嵌入式基础|内核、寄存器、架构、存储、汇编移位全面梳理
arm开发·单片机·嵌入式硬件·硬件架构
星栖与芯4 小时前
LiteOS-M 切换汇编逐行图解(2):指令·异常机制·全景表
stm32·单片机·嵌入式硬件·harmonyos·鸿蒙系统
Brilliantwxx6 小时前
【STM32】 I2C阻塞通信实战与HAL源码(教程篇)
stm32
fhq_fn_jgd7 小时前
51单片机(串口通信)
单片机·嵌入式硬件
深圳市元恩微科技开发有限公司8 小时前
兆讯恒达(北京兆讯)MH2457 系列 国产屏驱 MCU
单片机
Brilliantwxx9 小时前
【STM32】 I2C_EEPROM_test 工程(实战篇)
开发语言·stm32·单片机·嵌入式硬件·ecmascript
en.en..9 小时前
UDP套接字编程完整标准流程(服务端+客户端)
单片机·嵌入式硬件
斑马1399 小时前
单片机学习笔记(一)——STC89C52的GPIO、LED、数码管、定时器和中断
单片机·stc89c52
youcans_10 小时前
【嵌入式软件AI编程】09. 使用VS Code调试STM32程序
stm32·mcu·ai编程·嵌入式软件·claude code