| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 避坑速看!STM32G0系列多通道ADC的问题 -> 正文阅读 |
|
[嵌入式]避坑速看!STM32G0系列多通道ADC的问题 |
STM32G0系列单片机是ST新推出的一个系列,基于Arm Cortex-M0 +内核,在严格的功率预算内提供出色的性能。目前来说相比F系列的,价格也比较实惠。但是新东西,就意味着资料相对较少,不过还好有STM32CubeMx这个工具,使用户只关心应用层程序即可,可以像F系列一样使用,大大降低了开发难度。 当然也会有一些意想不到的问题。今天调试G070的ADC就遇到一个问题,分享给大家,使大家少走弯路。 遇到问题 项目用到多通道ADC采样,使用DMA+多通道扫描的方式,配置了以下4个通道: 使能了扫描模式、连续转换模式和DMA: 但是在配置转换通道时,发现下拉菜单只有ADC_IN10和ADC_IN11,无法配置ADC_IN15和16通道: 原以为是我用的库版本有BUG,于是更新到了最新的库,发现还是这样。然后就试着先生成代码,手动修改为ADC_IN15和16.程序运行发现各个通道的数据都乱了。。。去掉这两个通道就正常了。 心想,难道芯片有BUG?还是看看芯片的手册吧,于是翻看了数据手册和参考手册。终于发现了问题所在,不是芯片本身的问题,而是使用的问题。 发现问题 G0系列的ADC在多通道扫描应用时有两种模式:
转换序列号可完全配置。采用这种方式时,多通道ADC的转换顺序是可以自定义的。如下,每个通道可单独配置。
转换序列号不可配置。采用这种方式时,多通道ADC的转换顺序是固定的,按照通道号从小到大的顺序来依次转换。如下图,采用选择这种方式时,没有单独配置每个通道的选项。 在Sequencer fully configurable这种方式时,参考手册中有这样两句话: 这种方式最多支持8个序列通道,只有ADC_IN0~ADC_IN14通道才可以使用这种模式。 解决问题 所以说上面配置的ADC_IN15和16通道是无法配置的,修改为Sequencer not fully configurable模式后,重新生成代码,运行采样后一切正常! 另外跟F系列不同的是,Sequencer fully configurable方式最多支持8个通道,使用超过8个通道时需要注意。 推荐阅读: ?????欢迎关注公众号"嵌入式技术开发",大家可以后台给我留言沟通交流。如果觉得该公众号对你有所帮助,也欢迎推荐分享给其他人。 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/9 1:00:16- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |