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

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

[复制链接]
zhjb1 发布时间:2019-1-2 10:15
这项测试原来认为比较简单,按照原来的设置后来减少为ADC1的通道1、通道6、通道7.通道4,5 留给DAC使用。
! ^( b; ]  H, J9 n因此修改STM32CubeMX为,见图24_2_1~4的选设。导出工程文件。. N0 I2 ^; J& _0 S9 {2 h1 _$ ]
现在自定义变量区,定义一下变量:6 ?' n. E% O; G0 n+ i/ }; Q+ G; f
uint16_t ADC_Result[4],adcx[4],adcNum=16;
3 u7 p. e: a& v7 H& I! o6 P在自定义程序区添加函数声明,如果函数在main前边,可以不用声明。
" Z. j5 V0 b, P2 C, T7 evoid adcTest(void);! h- {' b1 |0 P$ J" u. ^* K( |9 P& b
主函数main里添加:* s, p& I; [9 Y0 r2 Y
MX_ADC1_Init();6 ~) X4 x" Z! W9 v8 d% C5 I
在循环体中将刚才的printf函数改成:
( u' O( V0 B/ W/ tprintf("ADC1=%4d ADC2=%4d ADC3=%4d \n\r", adcx[0],adcx[1],adcx[2]);0 I0 U$ \/ t( L* e
在主函数后边添加:
& T( o/ h: ]8 k" q/ k7 v3 D//ADC Test
  i5 K" K# p5 X$ ^void adcTest(void){
2 P% a7 s" ]( a' d; @7 a3 ^ int i;1 y3 Q/ a9 u, ?8 C* B7 y
adcx[0]=adcx[1]=adcx[2]=0;
2 N1 E3 L' d6 T8 Y9 W% t. |( \ for(i=0;i<adcNum;i++){
* N4 b. ?) x( k+ O, G, M* S# e) T  HAL_ADCEx_Calibration_Start(&hadc1);//PA_1,6,7
# R0 q. x' q. v0 R$ j  HAL_ADC_Start_DMA(&hadc1,(uint32_t*)&ADC_Result,ADC_NUMOFCHANNEL);
7 s7 @  _3 y, k7 _% d( f% ]# u  adcx[0]+=ADC_Result[1];& `% T% `( `" j' B
  adcx[1]+=ADC_Result[2];8 a0 ^2 h9 z$ B$ C; m
  adcx[2]+=ADC_Result[3];
; G1 l3 n8 G- i( H. }/ Y; M }
4 e& V% d0 M% z" A9 Y8 J adcx[0]=adcx[0]/adcNum;adcx[1]=adcx[1]/adcNum;adcx[2]=adcx[2]/adcNum;3 K7 a" X, Q* V  V6 w
}
# i+ z6 [# N0 R: {次函数的作用是调用测试一轮ADC 的3个输入通道,测试次数由adcNum的只值决定,本例为16次平均。" m: Q6 i! r7 L+ l9 o9 e
结果见截图23_2_5。
  Q4 [% F, R: a% n/ L2 D
3 m/ M5 z8 ~5 H* B

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 手机版