搜索
查看: 1172|回复: 1

[原创] [自设STM32F103VET6测试LCD]5、ADC1测试

[复制链接]

该用户从未签到

82

主题

718

帖子

121

蝴蝶豆

版主

最后登录
2021-1-2
发表于 2019-1-2 10:15:39 | 显示全部楼层 |阅读模式
这项测试原来认为比较简单,按照原来的设置后来减少为ADC1的通道1、通道6、通道7.通道4,5 留给DAC使用。
因此修改STM32CubeMX为,见图24_2_1~4的选设。导出工程文件。
现在自定义变量区,定义一下变量:
uint16_t ADC_Result[4],adcx[4],adcNum=16;
在自定义程序区添加函数声明,如果函数在main前边,可以不用声明。
void adcTest(void);
主函数main里添加:
MX_ADC1_Init();
在循环体中将刚才的printf函数改成:
printf("ADC1=%4d ADC2=%4d ADC3=%4d \n\r", adcx[0],adcx[1],adcx[2]);
在主函数后边添加:
//ADC Test
void adcTest(void){
int i;
adcx[0]=adcx[1]=adcx[2]=0;
for(i=0;i<adcNum;i++){
  HAL_ADCEx_Calibration_Start(&hadc1);//PA_1,6,7
  HAL_ADC_Start_DMA(&hadc1,(uint32_t*)&ADC_Result,ADC_NUMOFCHANNEL);
  adcx[0]+=ADC_Result[1];
  adcx[1]+=ADC_Result[2];
  adcx[2]+=ADC_Result[3];
}
adcx[0]=adcx[0]/adcNum;adcx[1]=adcx[1]/adcNum;adcx[2]=adcx[2]/adcNum;
}
次函数的作用是调用测试一轮ADC 的3个输入通道,测试次数由adcNum的只值决定,本例为16次平均。
结果见截图23_2_5。

23-5

23-5

23-5

23-5

23-5

23-5

23-5

23-5

23-5

23-5
回复

使用道具 举报

该用户从未签到

1492

主题

2703

帖子

0

蝴蝶豆

管理员

最后登录
2021-5-11
发表于 2019-1-24 14:19:29 | 显示全部楼层
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-26 03:57 , Processed in 0.151793 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表