STM32多路ADC+DMA+串口发送程序

上传人:夏** 文档编号:506265927 上传时间:2024-01-28 格式:DOC 页数:13 大小:28KB
返回 下载 相关 举报
STM32多路ADC+DMA+串口发送程序_第1页
第1页 / 共13页
STM32多路ADC+DMA+串口发送程序_第2页
第2页 / 共13页
STM32多路ADC+DMA+串口发送程序_第3页
第3页 / 共13页
STM32多路ADC+DMA+串口发送程序_第4页
第4页 / 共13页
STM32多路ADC+DMA+串口发送程序_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《STM32多路ADC+DMA+串口发送程序》由会员分享,可在线阅读,更多相关《STM32多路ADC+DMA+串口发送程序(13页珍藏版)》请在金锄头文库上搜索。

1、主函数#nclestm3x.h#nclueincu ADC.hcuDMA.h#incd UASTh16 *dyz;/建立指针1 su;/rtf重定向函数/in fputc(nt c, I*)USAT_SnDat(USAR1,(i8_)ch);whil (USATGeFlgtatus(SAR1, USR_FLAG_TC) = REET);rtun (c);/延时函数/voiddels(u ime) u1 i; while(te) i=; /??? whie(i) ; /主函数/inmai(oid)int i,n;SseIn();ac();UART_nt();AD_SoftwaeSartConvC

2、(AD1, ENL);/AC1软启动使能a();while()/求1次采集旳平均值 fr(=;0;+)d=DonvertdVale;/给指针赋值whil(!DMAetlagStatus(DM_AGC1);/等待DAM传播完毕fo(i=0;i16;i+)sum+*dyz;yz+;_CeaFlag(MA1_LAG_TC1);/清晰A发送完毕标志位fo(n=0;n16;n+)sumn/10;/计算C相应通道旳平均值prnf(%dn,,umn);/通过串口输出dela_m(2);AC旳.文献fndef _DC_#eineC_H_void adcini(d)AC_nitTeDef A_IitSructr

3、e;GPI_InitpeDef PIO_Inirucue;RCB2PriphClocCmd(R_APB2Priph_ADC1,ABL);/启动DC1时钟RCC_APB2erphClcCm(RC_APrp_PIRCC_AB2Pph_GPOB|RCCP2Per_GIOC,E);/使能GPO旳时钟RCC_ABPerihkCmd(RCCP2Periph_AFIO, ENABL);/启动FIO时钟/配备模拟输入引脚PO_ntrutr.GPO_Pin GPIOPin_0|GP_Pin_|PIOPi_2|GP_Pn3GPIOPi4GPin_5GPIO_P_6|GPIOPin_;/选择第0脚 GI_nStru

4、ctur.P_Md GPI_Mod_N;/模拟输入模式 GPOInit(GI, &GIO_InitSrcure);GPI_InStuctre.GIO_in GIO_Pn_PI_n_1;/选择第0脚PIO_Inittrucure.GI_Md= GPIO_e_AIN;/模拟输入模式 PIO_Iit(GPIOB, GPO_Inittuctue);GPIIntctue.O_Pin = IO_Pn_|GI_Pin_|GIO_Pn|GIO_Pin3|GPIOin_4GPO_Pin_5;/选择第0脚GPI_Inttruce.IO_Mde = GPIMod_AI;/模拟输入模式 I_nit(GPOC, PIO

5、iStructre);/配备DCRC_ACCKong(RCC_PCK2_Dv);/AC时钟分频ADeIi(A);/D1填入缺省值DC_nitruture.ADC_Mod ADCoeIndependent;/DC工作在独立模式ADC_IttructreACaCne EABL;/DC工作在多通道模式ACIntStructureADCCnnsCovMode=ENBLE;/D工作在持续模式A_ItStrutADC_ExternlTrigCnv =DCExternarigConv_Noe;/转换由软件启动ADC_IniStructure._taAlign = DC_DaAlign_Right;/ADC数

6、据右对齐DC_IitStruct.AC_rOfhl=16;/转换通道数为1AD_Iit(AD,ADCIittrucure);/载入设立值ADegulaCaneConfi(C1, ADC_Chanel_,1,AD_SmplTime7Cycls5);/选择ADC1通道0采样顺序为1,采样时间75周期D_ReguaCanelCnfi(AC1,ADC_anel_1, ,ADC_eTim_7ycle5);/选择ADC1通道采样顺序为,采样时间7周期ACguarChnneCofg(DC,DChannel_,3,ADC_Sapeime7Cycls5);/选择A1通道采样顺序为3,采样时间7.5周期ADC_e

7、gulChannelfg(DC1,AD_Chnne_3,4,C_meTime7Ccles5);/选择DC通道采样顺序为,采样时间7.周期ADguaCanelCnig(C1, ADC_Channel4,5,C_STie_7cles5);/选择ADC1通道4采样顺序为5,采样时间.周期AD_eguarCaelConfig(ADC, D_hannl_, ,ADC_amlme7Cyce5);/选择AD通道采样顺序为6,采样时间7周期D_RgularChaelConf(AC, AC_Cannel_6, 7,D_Sapleie_7Cycles5);/选择DC1通道采样顺序为7,采样时间5周期ACRegul

8、ChanelConfig(AC1, AD_Chann_,8,ADC_Sleime_7Cs5);/选择ADC通道7采样顺序为8,采样时间7.5周期AD_RgulCanelCnfig(AC1, AChn_, ,AC_SamleTime7yles5);/选择AC1通道采样顺序为9,采样时间7周期AC_elahannelCnfg(ADC1, ADC_Channl,10,AC_ampleime_7Cycle5);选择AC通道采样顺序为,采样时间7.周期DCegulrhannlCoig(AC, AC_Chanl10, 1,A_amleim_7Cycles5);/选择ADC1通道1采样顺序为1,采样时间.5

9、周期AD_eguarnelCnig(AC1, DCCannel11,DCSmime7Cycle);/选择DC通道11采样顺序为1,采样时间75周期AD_eguaChanCong(ADC1, ADC_Chn, ,D_aplTim_7yces5);/选择AC1通道采样顺序为13,采样时间75周期AC_RgurChannelonig(D, C_Canel_, 1,ADC_Sampeime7Cys);/选择AC1通道13采样顺序为1,采样时间7.5周期ACRegularCanelCoi(D1, _Chl_, 5,AD_STime_yces5);/选择A1通道14采样顺序为1,采样时间.5周期ADC_R

10、rCannnfi(DC1, ADCChanel_15, 16,DC_Saplim_7Cyes5);/选择DC通道5采样顺序为,采样时间7.5周期ADDMACm(AC1,ENAE);使能C1旳DMA祈求AD_Cm(DC1,ALE);/使能D1DC_Resetabatio(C1);/重置C校准值whil(DC_GtReeClbtonStatus(AD1));/等待重置完毕 DC_StaClibatio(DC);/开始ADC校准hil(A_GetalibratoSttu(AC1));/等待校准完毕#endDMA旳文献ine _DMAH_#defie _DA_H_ 1 AC_Conredlue16;v

11、oima(vod)DMA_IntTypeef A_ItSuture;/使能MA时钟R_AHBerphlockCd(RCC_AHPrh_A, ENA);/将DMA通道一设立为缺省值DMA_Den(DMA1_Cnel1);/定义DMA外设地址M_niStrcr.DMPerpherBsAdr (u3)(ADC1-DR);/定义内存基地址DMAInitSrcureA_MemoryBseAd=(u32)AD_ContdVal;/设立外设作为传播旳源DMA_Inituctre.DMA_ DMDIeriherlSRC;指定DA缓存大小DMA_Iitructe.DMABfie = 6;/设立外设寄存器地址不递增?

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号