智能小车stm32cubemx教程8.模数转化_第1页
智能小车stm32cubemx教程8.模数转化_第2页
智能小车stm32cubemx教程8.模数转化_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ADC 简介实验目的:通过配置 ADC 外设,在串口输出电压值信息1.1【实验目的】(1)熟悉 RealView MDK 工具的使用方式。(2)能够把 ST库文件添加到项目工程。(3)掌握 RealView MDK程、仿真、调试。的基本设计流程和设计步骤,能够使用工具进行设计、编(4)通过本实验掌握的定时器中断的使用方法。(5)掌握如何利用 STM32F103rc的定时器服务程序。1.2【实验环境】(6) FS-STM32F103 开发(7)J-Link 仿真器(8)RealView MDK5.10 集成开发(9)STM32CUBEMX 图形开发(10)PC 机 XP、Window7/8 (3

2、2/64bit)1.3【实验内容】编写定时器程序,实现 FS-STM32F103 开发上的 adc 模数转换。调试编译好固件程序后,将程序到 FS-STM32F103 开发板,按复位键观察实验现象。1.4【实验原理】ADC(模拟/数字转换器)STM32F103xx 增强型产品内嵌 2 个 12 位的模拟/数字转换器(ADC),每个 ADC 有多达 16 个外部通道,可以执行单次或扫描转换模式;在扫描模式下,转换在一组选定的模拟输入上自动进行。ADC 接口上额外的逻辑功能允许:同时采样和保持交叉采样和保持单次采样ADC 可以使用 DMA 操作。模拟看门狗功能允许非常精准地监视一路、多路或所有选中

3、的被转换电压,当被监视的信号超出预置的阀值时,将产生中断。由标准定时器(TIMx)和高级控制定时器(TIM1)产生的事件,可以分别触发、外部触发和 DMA 触发,允许应用程序同步 AD级联到 ADC 的开始DMA关于 DMA,最大的作用就是减少 cpu 开销,有种说法是 dma 相当于cpu 的一个,很形象。说的再具体点就是帮CPU 来转移数据的。都知道,AD 每次转换结束后会将转换的结果放到一个固定的寄存器里,以往如果想将该寄存器中的值赋给某一变量时会用到赋值语句,如果不用 DMA,则赋值语句便要 CPU 来完成,CPU 本来就要忙着处理其他事情,现在还要来解决赋值语句这么简单决这个问题。由

4、于 DMA 只是个完成任务。,肯到会。所以需要 DMA 这个来帮他解,所以比较笨,你只有把任务交代清楚了她才能很好的这里只一路 adc,用来检测电池电量的,原理图如下电池电压经过分压后输入PC4,如果电池电量低到一定程度时,单片机将停止供电。时,输入电压也会降低,当降1.5【配置】如果需要中断可配置生成代码1.6【实验步骤】1、 参考的工程,对代码进行黏贴,下面做续电池电量的实验(具体代码参照工程)2、 对工程进行编译调试3、 开发板连接,参照上节(led)实验4、 打开工程,往开发板程序(同上,参照上节)5、 开发板上电查看实验结果1.7【实验结果】可以看到,adc 连续不断的将 PC4 的

5、模拟输入电压转换为数字电压后通过串口打印出来,具体电压算法为:假设到数字为valvaltage = val *3.3 / (212-1)这里求出的数是 stlink 供电时的 adc 输入,经过分压后的,如果使用电池供电就没问题。1.8【实验参考代码】需要开启然后不断接收就行了,这里小灯闪烁一次,显示一次数据,COBOL Code1234/* USER CODE BEGIN Includes */ #include stdio.h/* USER CODE END Includes */5678910111213141516171819202122232425262728293031323334

6、3536373839404142434445464748/* Private variables*/* USER CODE BEGIN PV */* Private variables*/u32_t Vaule_adc;/* USER CODE END PV */* Private function prototypes*/void SystemClock_Config(void);/* USER CODE BEGIN PFP */* Private function prototypes*/fp(ch, FILE *f);/* USER CODE END PFP */* USER CODE

7、BEGIN 0 */* USER CODE END 0 */main(void)/* USER CODE BEGIN 1 */* USER CODE END 1 */* MCU Configuration*/* Reset of all peripherals, Initializes the Flasherface and the Systick. */HAL_Init();/* Configure the system clock */ SystemClock_Config();/* Initialize all configured peripherals */ MX_GPIO_Init

8、();MX_DMA_Init(); MX_ADC1_Init(); MX_USART1_UART_Init();/* USER CODE BEGIN 2 */HAL_ADC_Start_DMA(&hadc1,&Vaule_adc,1);这里使用了prf()函数,只要实现实现下面的从定向就可以了,很方便123456789495051525354555657585960616263/* USER CODE BEGIN 4 */fp(ch, FILE *f)while(USART1-SR&0X40)=0);/?,? USART1-DR = (u8_t) ch;return ch;/* USER CODE END 4 */HAL_GPIO_Writn(GPIOB, GPIO_PIN_6, GPIO_PIN_RESET);/* USER CODE END 2 */* Infinioop */* USER CODE BEGIN WHILE */while (1)/* US

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论