完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
简述
本章主要是讲解了STM32的ADC DMA的使用。 1、芯片选型&创建工程 这里我选择的是STM32F103C8T6芯片。 配置工程名点击finish 2、芯片工程配置 这里我们主要是在.ioc文件里面进行图形界面配置 1)配置系统外部晶振&仿真引脚配置 ①在Pinout&Configuration下配置系统的时钟为外部输入时钟 ②在Clock Configuration下配置主频时钟为72兆如图 ③配置仿真脚这里我们能配置的是JTAG脚(不配置无法仿真运行) 2)配置ADC 这里我们配置PA1、PA2为 ADC1的通道1和2。配置如图 参数配置(Parameter Settings)如图 这里因为我们使用了两个ADC通道所以选了两路ADC转换分别是通道1和通道2,打开持续转换模式这样的作用是ADC不停的在转换,如果选择DISABLE则转换只会进行一次。 DMA配置如图 这里配置了ADC的DMA模式为循环装载模式,,传输的数据是半字节传输。 因为配置了ADC,时钟发生了变化。这里我们直接点 YES系统会选择最优的方案去配置。 配置生成的单独的.C.H文件 生成代码 3、调试&仿真 这里我们需要调用底层HAL库的函数 HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef* hadc, uint32_t* pData, uint32_t Length) 有三个传入参数分别是 ADC结构体 存放采样值的数组 数组大小 加入以下代码ADC就可以实现自动采集。ADC会先采集通道2再采集通道1循环采集,adc_value[2n] 则为通道1的值,adc_value[2n + 1] 则为通道2的值。 /* USER CODE BEGIN PTD */ unsigned short adc_value[20] = {0}; /* USER CODE END PTD */ /* USER CODE BEGIN 2 */ HAL_ADC_Start_DMA(&hadc1,(void *)adc_value,sizeof(adc_value) / sizeof(*adc_value)); /* USER CODE END 2 */ 点击调试配置仿真器 这里我们配置的是JLINK JTAG模式 然后就可以仿真 运行了。 |
|
|
|
只有小组成员才能发言,加入小组>>
3263 浏览 9 评论
2944 浏览 16 评论
3443 浏览 1 评论
8955 浏览 16 评论
4036 浏览 18 评论
1079浏览 3评论
559浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
552浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2287浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1848浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 17:10 , Processed in 0.913321 second(s), Total 49, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号