码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【# 软件stm32cubeIDE下使用STM32F103的ADC+DMA测量-基础样例+进阶+增加通道】


    # # 软件stm32cubeIDE下使用STM32F103的ADC+DMA测量-基础样例+进阶+增加通道

    • (1)叙述
    • (2)测试环境
            • 1)IO连线
            • 2)硬件环境
    • (3)先行文章
    • (4)操作步骤
          • (1)查下ADC引脚
          • (2)下载代码后,先编译一下没有错误继续。
          • (3)点击配置界面“charger_test_uart3.ioc”,找到ADC选项。
          • (4)增加通道数与选择,本次整机通道4---PA4
          • (5)保存生成代码,然后编译。
          • (6)修改代码部分。
    • (5)测试数据
              • 以下PA1的测试情况:
              • 以下PA2的测试情况:
              • 以下PA3的测试情况:
              • 以下PA4的测试情况
    • (6)代码链接
    • (7)细节说明
            • 1)单片机卡死
            • 2)代码放置位置-放置在块内
    • (8)总结

    (1)叙述

    距离上次调试STM32的ADC已经过去一段时间了,近一段时间有用到ADC,在原理基础上,增加通道,将以前文章翻出来,其实原本是想在项目代码直接增加代码段,来实现功能的,但是调试时发现,工程代码涉及硬件比较复杂,无法解耦时ADC没调通,还是硬件问题,所以只能将之前文章拿出来,再一步步实验。

    (2)测试环境

    本次实验环境不变,不过看自己先行文章的时候,感觉IO接线有必要逻辑列出来。

    1)IO连线

    (1)供电线:给开发板或者单片机供电。
    (2)调试用的串口IO :PB10—uart3-TX (用于发送数据)
    (3)调试用的串口IO :PB11—uart3-RX (本实验单片机不接收,只是初始化)
    (4)ADC的IO :PA1—通道1
    (5)ADC的IO :PA2—通道2
    (6)ADC的IO :PA3—通道3
    (7)ADC的IO :PA4—通道4(新增加的通道)
    (8)调试线:下载线,用st-link或者j-link都行

    2)硬件环境
    • 软件环境:STM32cubeIDE 1.8.0
    • 硬件环境:野火-指南者STM32F103VET6
    • 硬件配件:j-link,串口转换器,PC
      硬件拍照

    在这里插入图片描述

    (3)先行文章

    本次实验是建立再之前的文章上的,一方面可见,记录的重要性,一方面只要一看,知道大致步骤了,就有方向了。
    先行文章:软件stm32cubeIDE下使用STM32F103的ADC+DMA测量-基础样例

    (4)操作步骤

    (1)查下ADC引脚

    在使用ADC之前,还是要知道ADC连接哪个引脚的,如下图所示,是F103的ADC连接情况,具体型号请根据单片机手册来。
    在这里插入图片描述

    (2)下载代码后,先编译一下没有错误继续。

    在这里插入图片描述

    (3)点击配置界面“charger_test_uart3.ioc”,找到ADC选项。

    在这里插入图片描述

    (4)增加通道数与选择,本次整机通道4—PA4

    在这里插入图片描述

    (5)保存生成代码,然后编译。

    在这里插入图片描述

    (6)修改代码部分。

    发现一个一个看,太难受了,直接全部打印出来,这块需要扩容输出的buffer;另外,我们用4个数组进行接收,接收ADC的数值也需要改变。

    (1)将输出字符加多
    在这里插入图片描述

    (2)将打印的代码:一次性打印全
    在这里插入图片描述

    (3)更改数组数组部分,
    定义的数组
    在这里插入图片描述
    以及函数的start
    在这里插入图片描述

    (5)测试数据

    编译后,本次加入测试的数据,通过串口打印,我们直接接入3.3V和GND,以此来测试是否达到效果,基准电压位3.3V,相当于测满载与空值。

    以下PA1的测试情况:

    在这里插入图片描述

    以下PA2的测试情况:

    在这里插入图片描述

    以下PA3的测试情况:

    在这里插入图片描述

    以下PA4的测试情况

    在这里插入图片描述

    (6)代码链接

    代码:https://download.csdn.net/download/qq_22146161/86555431

    (7)细节说明

    1)单片机卡死

    调试的时候,没太注意,发现串口一直没有输出,按两次复位后,发现卡死了,这是一部分是代码,没写全,一部分可能数组给小了。
    现象如下。
    在这里插入图片描述
    解决办法1:增加数组量。
    在这里插入图片描述

    解决办法2:变量打印时要一一对应。
    在这里插入图片描述

    2)代码放置位置-放置在块内

    在生成代码的时候,先看了下,每一块代码是否都在“BEGIN”和“END”之间,如果不是,那么在生成代码时,会删掉那些代码,这部分还是需要小心的。
    在这里插入图片描述

    (8)总结

    记录时好的,可以帮助记录,过了多少时间,复查还是挺不错的。

  • 相关阅读:
    21款奔驰S400L升级HUD抬头显示 不用低头也能看见仪表信息
    Github高级搜索【指定日期区间,星星数,用户仓库名多条件精确搜索】
    JavaScript系列之Promise的resolve、reject、then、catch
    Python 爬虫实战
    「移动端」mescroll.js 在 H5端 运行的下拉刷新和上拉加载插件
    LeetCode 1769. 移动所有球到每个盒子所需的最小操作数
    JavaScript+Flask 实现视频上传的简单demo
    失效的访问控制及漏洞复现
    MATLAB 的 figure 用法总结
    【XGBoost】第 2 章:深度决策树
  • 原文地址:https://blog.csdn.net/qq_22146161/article/details/126935805
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号