STM32F103ZET6 之 ADC+TIM+DMA+USART 综合实验

2023-11-01

1、实验目的

1)使用 TIM1 触发 ADC,ADC 采集的数据通过DMA 传至内存,然后通过串口打印出采集的数据;  

2)学会 DMA 传输数据并将数据进行保存;

3)验证ADC 的采样率与实际设置的是否相符。


2、硬件资源

1)指示灯

2)ADC

3)DMA

4)TIM

5)杜邦线


3、软件设计

void  Adc_Configuration(void)
{ 	
  DMA_InitTypeDef DMA_InitStructure;
  ADC_InitTypeDef	ADC_InitStructure;	
  GPIO_InitTypeDef GPIO_InitStructure; 

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC	| RCC_APB2Periph_AFIO, ENABLE);	   
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOC, &GPIO_InitStructure);
	
  /* Enable DMA1 clock */
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
	
  DMA_DeInit(DMA1_Channel1);		          
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32F103ZET6 之 ADC+TIM+DMA+USART 综合实验 的相关文章

  • arm64 上的 Linux:从 mmapped 相干 DMA 缓冲区发送数据时,sendto 导致“未处理的故障:对齐故障 (0x96000021)”

    我正在构建一个基于配备arm64 CPU的UltraScale FPGA的数据采集系统 数据通过DMA传输到RAM 驱动程序中的 DMA 缓冲区保留如下 virt buf i dma zalloc coherent pdev gt dev
  • 匹配 STM32F0 和 zlib 中的 CRC32

    我正在研究运行 Linux 的计算机和 STM32F0 之间的通信链路 我想对我的数据包使用某种错误检测 并且由于 STM32F0 有 CRC32 硬件 并且我在 Linux 上有带有 CRC32 的 zlib 所以我认为在我的项目中使用
  • STM32用一个定时器执行多任务写法

    文章目录 main c include stm32f4xx h uint32 t Power check times 电量检测周期 uint32 t RFID Init Check times RFID检测周期 int main Timer
  • [屏驱相关]【SWM166-SPI-Y1.28C1测评】+ 有点惊艳的开箱

    耳闻华芯微特许久了 看到论坛得评测活动赶紧上了末班车 毕竟对有屏幕得板子也是很喜欢得 京东快递小哥客客气气 微笑着把快递给了我 好评 直接拆了包 在此之前没看过视频号 所以这个圆盘盘得模具还是有点惊喜的 正面照如下 开机有灯光秀 还有动画
  • 跟着野火学FreeRTOS:第一段(任务定义,切换以及临界段)

    在裸机系统中 系统的主体就是 C P U CPU CP U 按照预先设定的程序逻辑在 m a i n
  • Linux驱动程序DMA传输到PC作为主机的PCIe卡

    我正在开发一个 DMA 例程 将数据从 PC 传输到 PCIe 卡上的 FPGA 我阅读了 DMA API txt 和 LDD3 ch 15 详细信息 但是 我不知道如何从 PC 到 PCIe 卡上的一致 iomem 块进行 DMA 传输
  • 库函数点亮Led

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 提示 这里可以添加本文要记录的大概内容 例如 随着人工智能的不断发展 机器学习这门
  • Cortex-M3与M4权威指南

    处理器类型 所有的ARM Cortex M 处理器是32位的精简指令集处理器 它们有 32位寄存器 32位内部数据路径 32位总线接口 除了32位数据 Cortex M处理器也可以有效地处理器8位和16位数据以及支持许多涉及64位数据的操作
  • 核心耦合内存在 STM32F4xx 上可执行吗?

    尝试从 STM32F429s CCM 运行代码 但每当我命中 CCM 中的第一条指令时 我总是会遇到硬故障 并且 IBUSERR 标志被设置 该指令有效且一致 STM32F4xx 是否可能不允许从 CCM 执行 数据访问效果良好 alios
  • STM32 Nucleo 上的上升沿中断多次触发

    我正在使用 STM32 NUCLEO F401RE 微控制器板 我有一个扬声器 经过编程 当向上 向下推操纵杆时 可以按设定的量改变频率 我的问题是 有时 通常 当向上 向下推动操纵杆时 频率会增加 减少多次 这意味着 ISR 正在执行多次
  • 分配大的 DMA 缓冲区

    我想分配一个大的 DMA 缓冲区 大小约为 40 MB 当我使用dma alloc coherent 它失败了 我看到的是 cut here WARNING at mm page alloc c 2106 alloc pages nodem
  • 如何从cdev获取设备

    我正在编写一个内核模块 它将分配一些一致的内存并返回相应的虚拟和物理地址 我正在将模块注册为cdev 分配空间dma alloc coherent 我想使用 mmap 它dma common mmap dma common mmap 需要一
  • STM32 上的位置无关代码 - 指针

    我已成功在 STM32 上构建并运行位置无关的代码 向量表和 GOT 已修补 一切正常 但我对这样的代码有问题 double myAdd double x return x 0 1 double ptrmyAdd double myAdd
  • STM32内部时钟

    我对 STM32F7 设备 意法半导体的 Cortex M7 微控制器 上的时钟系统感到困惑 参考手册没有充分阐明这些时钟之间的差异 SYSCLK HCLK FCLK 参考手册中阅读章节 gt RCC 为 Cortex 系统定时器 SysT
  • 在 Contiki 程序中使用 malloc

    考虑以下 Contiki 程序 include
  • HAL_Delay() 陷入无限循环

    我被 HAL Delay 函数困住了 当我调用此函数 HAL Delay 时 控制陷入无限循环 在寻找问题的过程中 我发现了这个 http www openstm32 org forumthread2145 threadId2146 htt
  • 使用 STM32F0 ADC 单独读取不同的输入

    STM32F072CBU 微控制器 我有多个 ADC 输入 并且希望单独读取它们 STMcubeMX 生成样板代码 假设我希望按顺序读取所有输入 但我无法弄清楚如何纠正这个问题 这篇博文 http blog koepi info 2015
  • 哪些变量类型/大小在 STM32 微控制器上是原子的?

    以下是 STM32 微控制器上的数据类型 http www keil com support man docs armcc armcc chr1359125009502 htm http www keil com support man d
  • GCC 变量映射和 MISRA-C

    我主要知道两种使用 GCC 声明内存映射寄存器的方法 有许多变体 使用双字段 每个外设的数据结构等 要么使用初始化为正确地址的指针 例如volatile uint32 t pMyRegister uint32 t 0xDEADBEEFUL
  • 读取STM32 MCU SPI数据寄存器的值

    有很多类似的问题 但似乎没有一个问题完全相同 我正在将 STML4 MCU 连接到 6 轴传感器 LSM6DS3 我已经成功地在 I2C 中实现了所有内容 但想要 SPI 的额外速度 和 DMA 如果我能让这些第一步工作起来的话 因此 第一

随机推荐

  • 前端学习——jQuery基础

    一 引入jQuery的js文件 此处是下载好的jquery的js文件 也可以引入cdn 二 jQuery的入口函数 三 DOM对象和jQuery对象 div div 建一个盒子
  • react——state(状态机)

    h1 h1 h1 react state 状态 h1 p react把组件看成是一个状态机 state machines 通过与用户的交互 实现不同状态渲染UI 让用户界面和数据保持一致 p p react里 只需要更新组件的state 然
  • 【Qt教程】1.7 - Qt5带参数的信号、信号重载、带参数的槽函数、槽函数重载

    原理 与C 语法一致 信号 槽函数都可以发生重载 使其在名称不变的情况下 传递过程可以携带参数 示例说明 我们从一个最普通的信号槽工程中 来修改 对信号 槽进行重载 使信号 槽携带参数 1 普通信号 工程源码 widget h ifndef
  • rank、dense_rank、row_number函数的区别

    这四个 RANK DENSE RANK NTILE ROW NUMBER 函数 都是用来对数据库中的数据进行排名的 在他们的功能各有千秋 下面介绍一下这四个函数的功能和用法 首先创建一个Student表 CREATETABLEStudent
  • 树莓派安装opencv教程

    我使用的镜像版本为 Linux version 5 10 103 v7l dom buildbot arm linux gnueabihf gcc 8 Ubuntu Linaro 8 4 0 3ubuntu1 8 4 0 使用Python3
  • C++ 仿函数的分类

    一 概述 仿函数 functor 就是使一个类的使用看上去象一个函数 其实现就是类中实现一个operator 这个类就有了类似函数的行为 就是一个仿函数类了 有些功能的的代码 会在不同的成员函数中用到 想复用这些代码 1 公共的函数 可以
  • 普通人如何抓住AI这个风口

    随着科技的发展 人工智能 AI 已经成为当今社会的风口浪尖 越来越多的行业正在应用AI技术 新的职业和商业机会也随之出现 那么 作为普通人 我们应该如何抓住这个风口呢 来看看 AI硅基小助手 是如何解答的 1 学习AI相关技能 学习AI相关
  • Shiro和Spring Security的简单对比

    Shiro和Spring Security是Java中常用的两种安全认证框架 安全认证主要包括认证和授权鉴权两部分 认证指应用程序验证一个用户信息的过程 应用程序需要确认当前的用户是否是合法的用户 用户会向应用程序提供两部分数据 身份信息和
  • Java学习-冒泡排序

    冒泡排序 通俗的理解就是将一列无序的数字按照从大到小或者从小到大的顺序进行排序的一种简单的算法 在Java中一般是将数组使用冒泡排序的方法进行排序 大致原理是遍历数组元素 然后每两个之间进行比较 将较大值或者较小值按照自己想要的排序结果进行
  • YOLOV7调用本地USB摄像头和自己训练的权重文件实时检测目标

    作者新手 挣扎于毕业的菜鸡一枚 有问题欢迎讨论 最近在做课题时想直接调用本地摄像头来测试一下自己的训练结果 查到的文章多用到onnx openvino等格式转换部署 但作者没有这方面需求 折腾一会失败了 后来发现yolo系列自带了此功能 只
  • Linux xarges

    对于管道 之后的一部分命令可以用stdin进行输入 如 cat a grep test 但有些命令只能用参数形式 就要使用xargs了 xargs可以将stdin转化为参数 类似于find命令中的 exec选项 xargs也可以将单行或多行
  • 电赛经验分享

    2019 TI杯过程和经验分享 在这里我也是第一次写博客 看博客已经有一年多了吧 为什么要在这一次写博客呢 一是因为这一次比赛对我的影响很深 也算试一次经历和教训吧 二是因为最后一次参加TI杯大赛 在 比赛之前我们是做了充分的准备 把前两年
  • 如何用计算机名添加的打印机,如何添加打印机(如何在电脑上安装打印机)

    如何添加打印机 如何在电脑上安装打印机 平时在生活中 我们要将电子档的文件打印出来 都需要使用到打印机 传统的打印机都是以电脑为主 今天就教大家如何在电脑上安装打印机 电脑上安装打印机的详细步骤 1 双击打开桌面上的 控制面板 如果桌面上没
  • cadence布局布线常见问题详解

    cadence布局布线常见问题详解 1 怎样建立自己的元件库 建立了一个新的project后 画原理图的第一步就是先建立自己所需要的库 所采用的工具就是part developer 首先在建立一个存放元件库的目录 如mylib 然后用写字板
  • vue 前端调用摄像头上传压缩图片后端保存调用微信OCR识别身份证

    前端
  • iOS app签名机制

    前言 在移动开发中 iOS系统下的app和andorid系统下的app一个很大的区别是 android系统下 app的安装很方便 可以从多个应用商店下载 小米应用商店 华为应用商店 也可以直接下载apk的包安装 而在iOS系统下 对app的
  • 【CreateFile() Error 5】 权限问题解决

    CreateFile Error 5 权限问题解决 打开注册表 regedit HKEY LOCAL MACHINE Software Microsoft Windows CurrentVersion Policies System 修改这
  • git -C

    https git scm com docs git C
  • 谷歌技术"三宝"之BigTable

    谷歌技术 三宝 之BigTable 2006年的OSDI有 两篇google的论文 分别是BigTable和Chubby Chubby是一个分布式锁服务 基于Paxos算法 BigTable是一个用于管理结构化数据的分布式存储系统 构建在G
  • STM32F103ZET6 之 ADC+TIM+DMA+USART 综合实验

    1 实验目的 1 使用 TIM1 触发 ADC ADC 采集的数据通过DMA 传至内存 然后通过串口打印出采集的数据 2 学会 DMA 传输数据并将数据进行保存 3 验证ADC 的采样率与实际设置的是否相符 2 硬件资源 1 指示灯 2 A