




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#181132183184181132183184135IS61871881891901911921931941951961971981992002012022032042Q5戸第通道按顺.字循环转换,AD匚值也按顺.字存放在ADC_V辽弱数组L中叮voidGet.ADCAverag皂V曰丄口亡(void}El{__for//for(j=Q;j<K;j++)sura[j]+=ABC_VdlBaf[i*N4-j];"衣取各个通道AD匚值总和for(i=3;i<M;i++7ADCValje[i]=stjit.[1]/M;//计鼻平均值^elsevoidGetADCAveraaeV^lae(void)El{--'ain七32_tsun;■aint16t.i;forU=^;i<M;i44)suir.+=ADC_Va13jf[i];ADCValae=sunL/N;//计算"_hL#endif/*USERCODEEND丄*/【代码】:/*USERCODEBEGIN1*/#ifN>1/*多通道按顺序循环转换,ADC值也按顺序存放在ADC_Value数组中*/voidGet_ADC_AverageValue(void){uint32_tsum[N]={0};uint16_ti,j;for(i=0;i<M;i++)//sum[0]对应通道0,sum[1]对应通道1for(j=0;j<N;j++)sum[j]+=ADC_ValBuf[i*N+j];〃获取各个通道ADC值总和for(i=0;i<N;i++)ADC_Value[i]=sum[i]/M;〃计算平均值}#elsevoidGet_ADC_AverageValue(void){uint32_tsum;uint16_ti;for(i=0;i<M;i++)sum+=ADC_ValBuf[i];ADC_Value=sum/N;〃计算平均值
#endif/*USERCODEEND1*/(3)最后我们就可以编写main函数了Length变量是数据的个数,所以直接通过sizeof(ADC_ValBuf)/2来计算得出。首先,我们要在main函数开头的初始化部分调用ADCDMA启动函数,HAL_ADC_Start_DMA()函数中HAL_ADC_Start_DMA(&hadc1,(uint32_t*)&ADC_ValBuf,sizeof(ADC_ValBuf)/2);92939-99596579El92939-99596579El朋100101102MX_GFIC_IniL():Hl<2DMA_Init(};田匚ADCZ_工rdu(门I<K_U5JLRTl_UART_In1r(J://EX_DM?L_Iniit(?;/*USERCODEBEGI32*/H3XADCStartDfcQfihadc丄『(unit32VaiBu±rsizeof(ADCVaiBu±|./2J;DWk/*USERCDDEE3D2檸/*USERCDDEE3D2檸.103JL"105.106当.103JL"105.106当/*U5ERCODE3E3IETWHILE*/107.109110111112113.1141S.119.12024A126127128129130131107.109110111112113.1141S.119.12024A126127128129130131132133134135136137.138-139140141ido-/'■USER3ODEZNDWHILE/*■USERCODEBEGIN3*/if(EtccFlag"-"!}RecFla^O;Get_ADC_AverageVa1he();foz7i=37i<sizeof(ADC¥刊丄血£卜Z2;i++}if(i>^Aii%E=OJtAJU曲.(r,\n"打印出每个通這^衣采祥的数值prinut(rr^dadcvaiBur[i]);printf("XnXn"};rrvn-.f(”计算平均数片各通這的ADC<为:z:fox(i=3;i<5;swiu土(丄打印出计算平览数后每个通道的AD匚值case0:print±(nADC_Channel0VaL-je:%d\n11fADC_Valae[1]|;break;LWU匸1iprintf(TIADCLCTiann^L1Vai-j&:rADCVaL^e:i:|;casecasecase/*USERCODEbzeakp2;printf("ADClt-xeak;3:printf(nADClbreak;4:printf(r,ADClbreak?END3*/ChannelCtiannelChannel-1Val-jc;AECYalac[1]|;Value:%d\n,T,ADCValue[i]|;Value:%d\n11,ADCValue[ij►:【代码】:while(1){/*USERCODEENDWHILE*//*USERCODEBEGIN3*/if(RecFlag==1){RecFlag=0;Get_ADC_AverageValue();for(i=0;i<sizeof(ADC_ValBuf)/2;i++){if(i>4&&i%5==0)printf("\n");//打印出每个通道20次采样的数值printf("%d",ADC_ValBuf[i]);}printf("\n\n");printf("计算平均数后各通道的ADC值为:\n");for(i=0;i<5;i++){switch(i)//打印出计算平均数后每个通道的ADC值{case0:printf("ADC1Channel0Value:%d\n",ADC_Value[i]);break;case1:printf("ADC1Channel1Value:%d\n",ADC_Value[i]);break;case2:printf("ADC1Channel4Value:%d\n",ADC_Value[i]);break;case3:printf("ADC1Channel5Value:%d\n",ADC_Value[i]);break;case4:printf("ADC1Channel6Value:%d\n",ADC_Value[i]);break;}}}}/*USERCODEEND3*/}到这里,我们在cubemx生成的工程文件中增加这些代码,就可以实现了ADC多通道采样。其中比较关键的是:ADC多通道采样需要启用扫描模式并启用DMA接收ADC值(很重要),中断方式没法在多通道时实现ADC值接收。(4)结果测试首先,我们把通道0接到GND,把通道4和通道6接到3.3V,通道1和通道5不接入电压(悬空),然后用串口调试助手给单片机发送一个数据,按照设计的代码,程序将输出采样的ADC数据。我们可以看到,通道0,20次采样结果都为0;通道1,5显示浮空时的采样数据;通道4,6数值都在4044左右。Iftr.SSCOMV5.13.1口馄堀截据潟試器件者:大1FT丁2頭6O5Edq“,-□X週肠口串口设置显示发送冨字符串小工具誓助联茎作者止PCB打祥降至每款5元顺丰包邮可选杂色!【崙立创盲网]01205404427904044A0120740432790404601211404527944045□12104043279£40450121340412795404401216404527?£404401217404427934046□120S4044279140450120440452791404301201404527?14044012014043279240430120740442792404501213404427954047012144045279640460121540432795404E0121140452794404501207404427914045012054044279140460120440432790404E01202404327904044计箕平均数后各通道的朋匚值药:itElClC1l:=ltltlelUV:=J_ue:UMJClChaimel1Value:1203KDC1CLaimel4Valu^:4044ALC1Clianiiel5Value:2790jVEIC1C1l:=ltltlel6V:=J_ue:4044V青除窗口|打开文件||发送文件惇止|葢赶端口号C0M12USE-SERIALCH340也厂HO显示保存数振厂提收数堀到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业设计与制造工艺的融合实践
- 工业遗产旅游的开发与保护策略
- 工业设计原理与创意实践
- 工作压力下的心理调适与应对策略
- 工作中的创造力提升策略研究
- 工业领域机房的绿色节能技术应用
- 工程学中的计算方法研究
- 工作流程优化提高工作效率的方法与技巧
- 工厂安全生产与事故预防培训
- 工程质量管理中的风险评估方法
- 人工智能算法与实践-第16章 LSTM神经网络
- 研学旅行市场营销智慧树知到答案2024年青岛酒店管理职业技术学院
- 抖音直播带货合作协议书范本
- GB 44246-2024家用和类似用途电器、体育用品的电气部分及电玩具安全技术规范
- 起重吊车吊装施工方案
- 教育咨询员合同范本样本
- DL∕T 1474-2021 交、直流系统用高压聚合物绝缘子憎水性测量及评估方法
- 劳动合同中止执行协议
- 2024年四川省乐山市中考地理试卷(含答案)
- 货运车辆驾驶员安全教育培训(3篇模板)
- 基于排队网络理论的集装箱码头设备配置优化研究
评论
0/150
提交评论