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

相关推荐
芯岭技术1 小时前
PY32L020系列32位MCU,超低功耗、高性价比,支持三种低功耗模式
单片机·嵌入式硬件
危桥带雨6 小时前
RTC理论知识
stm32·单片机·嵌入式硬件·实时音视频
ElfBoard8 小时前
飞凌精灵(ElfBoard)技术贴|如何在RK3506开发板上实现UART功能复用
大数据·linux·人工智能·驱动开发·单片机·嵌入式硬件·物联网
踏着七彩祥云的小丑8 小时前
嵌入式——认识电子元器件——二极管系列
单片机·嵌入式硬件
Jack_02208 小时前
基于51单片机的智能电动窗帘控制OLED显示设计
单片机·嵌入式硬件·51单片机·智能家居·oled显示·电动窗帘
sz4972385999 小时前
vscode多种编译环境共存的方法
ide·vscode·stm32·编辑器·esp32
摘星台9 小时前
linux环境对stm32单片机进行程序烧录
linux·stm32·单片机
Joseph Cooper9 小时前
STM32MP157 Linux驱动学习笔记(三):系统级驱动框架(UART/PCIe)
linux·stm32·学习
森G10 小时前
STM32F103C8T6工程---标准库版usart2写回显
stm32·单片机
追兮兮10 小时前
基于 GD32 与 LwIP 的 TCP OTA 固件升级实现
网络·网络协议·tcp/ip·tcp·gd32·ota