你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
zhjb1 发布时间:2019-1-2 10:15
这项测试原来认为比较简单,按照原来的设置后来减少为ADC1的通道1、通道6、通道7.通道4,5 留给DAC使用。: w( z  s* E. @4 b7 C$ w5 w
因此修改STM32CubeMX为,见图24_2_1~4的选设。导出工程文件。1 w6 Z1 t, P/ A2 X- u) _
现在自定义变量区,定义一下变量:
" N+ T" X) V4 G5 Nuint16_t ADC_Result[4],adcx[4],adcNum=16;6 H- M7 \2 [# V+ C8 u
在自定义程序区添加函数声明,如果函数在main前边,可以不用声明。' Q6 Y8 {2 l1 O: y" c3 x. n
void adcTest(void);  p  b* S+ i) R$ R' l
主函数main里添加:+ g* h, _1 `6 w- O( O
MX_ADC1_Init();! \" ^) z* \! \) G" Q
在循环体中将刚才的printf函数改成:0 z1 E$ u8 E/ q0 Y% b% G
printf("ADC1=%4d ADC2=%4d ADC3=%4d \n\r", adcx[0],adcx[1],adcx[2]);5 t9 o6 b2 }/ Z4 ]/ w
在主函数后边添加:$ C, f1 R9 `) M6 \  M6 E- L
//ADC Test
* C* I/ ?, s, x/ I' hvoid adcTest(void){
1 |$ l/ S: |+ Y  @7 v. l int i;
+ C, I* g0 w8 L9 z7 }* @ adcx[0]=adcx[1]=adcx[2]=0;
& a- M& P( V' q) l0 ? for(i=0;i<adcNum;i++){
; A( Q3 {/ z+ E; q4 e  HAL_ADCEx_Calibration_Start(&hadc1);//PA_1,6,7
8 ]+ y1 o. {) g7 ^; D- H- x6 Q+ c; Y  HAL_ADC_Start_DMA(&hadc1,(uint32_t*)&ADC_Result,ADC_NUMOFCHANNEL);
. X0 p7 j1 {7 D4 A+ y' {' o! A9 t  adcx[0]+=ADC_Result[1];
' w! o: k5 R" w( y! T( x; W  adcx[1]+=ADC_Result[2];3 A+ T( p1 D/ B* g
  adcx[2]+=ADC_Result[3];
# m; M, A5 N' V# g# ~; U }
; q- j: k/ M9 I% W+ j0 O adcx[0]=adcx[0]/adcNum;adcx[1]=adcx[1]/adcNum;adcx[2]=adcx[2]/adcNum;
0 w1 _3 X+ d/ i}( [% j4 z8 f* m/ M( Y- B) ?0 r
次函数的作用是调用测试一轮ADC 的3个输入通道,测试次数由adcNum的只值决定,本例为16次平均。2 Y$ [* I+ E: t$ M* \
结果见截图23_2_5。
3 u2 h6 X) p! ]0 Q, k; d1 O6 Y7 N' ?* \

23-5

23-5

23-5

23-5

23-5

23-5

23-5

23-5

23-5

23-5
收藏 评论1 发布时间:2019-1-2 10:15

举报

1个回答
STMCU-管管 回答时间:2019-1-24 14:19:29
谢谢分享
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版