STM32多路ADC采样数据经过RS485传输到另一块ARM板路虎(LPC1768)

上传人:豆*** 文档编号:203523348 上传时间:2023-04-24 格式:DOCX 页数:10 大小:19.47KB
收藏 版权申诉 举报 下载
STM32多路ADC采样数据经过RS485传输到另一块ARM板路虎(LPC1768)_第1页
第1页 / 共10页
STM32多路ADC采样数据经过RS485传输到另一块ARM板路虎(LPC1768)_第2页
第2页 / 共10页
STM32多路ADC采样数据经过RS485传输到另一块ARM板路虎(LPC1768)_第3页
第3页 / 共10页
资源描述:

《STM32多路ADC采样数据经过RS485传输到另一块ARM板路虎(LPC1768)》由会员分享,可在线阅读,更多相关《STM32多路ADC采样数据经过RS485传输到另一块ARM板路虎(LPC1768)(10页珍藏版)》请在装配图网上搜索。

1、#includesm3210xh#includng.hinclude stdo.hoid Dela(unsgn so tme);/* 外设时钟使能*/oid RCC_Cnfuraion(vod) * 使能外设时钟 *RCCP2PephClockC(RC_APBPerph_USART1 | RCC_APB2Piph_GPIO | RCCAPB2Per_GPIO | RCC_APB2Perph_PIC | CC_B2Periph_GPIO | R_A2Peip_GE | C_APB2PerhAD, ENAE);RC_B1PeiphClokCd(CC_APB1Prph_UART | C_AB1eri

2、ph_USART,EL);C_AHPerphClckmd(RCC_AHBPeriph_MA1, ENAL);/*所有用到的引脚将在在配备*vi PIOConfiguratio(void)GPIInTypeef GPI_Intrute; /* 配备串口1引脚 / GPIO_InSrctur.GPIO_n = GPI_Pin_9; GPIO_InitStrr.GPIO_See= GPIOSpeed_Mz; GPIO_InitStructurePIO_Mode= GIO_ode_AF_P; GI_Ii(GPOA, GO_nitStructre); PI_iSructurePIO_Pin = GPIO

3、in_0; GPIIntrucre.O_de GPO_Mode_INLOIG;GPIOnit(GPIO, &GPIOIntructr); /* Cofigure RS45contrelpin: CTL*/GIO_IniSrucure.GPIO_Pin = GP_i_; GPIO_InitSrcture.PO_ed PIO_Seed_0MHz;PIO_IitSrcturePIO_Mode PMode_OtPP;GPIO_Int(GIOB, GPIOIntStructure); * CofigueRS45pin: RX /GInitSructu.GPIO_Pin PIOPin_1; PIOniSu

4、cture.GPIO_Seed = IO_peed_0MHz; PIO_InitStrutur.GPI_Mode= PIO_MoI_FTNG;GPIO_Iit(GPIO, &GOInitSructure); * Configure RS485 n:TX */ GIOInitStuue.GPI_Pin= GPIO_Pin_1; GPIO_IntStrctureGPIO_peed = PIO_Spe50MHz; PO_InitStuturGIOMde= PIMode_FPP; GPI_In(GPOB, &PIOnittucture);/C5 作为模拟通道输入引脚GPIO_InitStrcure.G

5、PIO_i POPin5;GIO_niStructure.GI_Me = GI_Mode_AIN;/模拟输入引脚GIOIit(GI, IO_InitStructure);/PB 作为模拟通道输入引脚IIntStcture.GI_in GPIO_Pin0;GPIIntSruureGPIO_Mode = GPIO_ModeIN;/模拟输入引脚GIO_It(GPB, &GPIO_Inittructure);/1 作为模拟通道输入引脚/GPIO_InitStrcture.GPIOPin = GIO_in_1;/GPIO_Inittrcture.PO_Mode = GPO_Mode_A;/模拟输入引脚/

6、GPIO_it(PIOB,&GPIO_IitStructure);/* 所有中断在此配备*/odNVIC_Configuration(voi)VI_itTyeefNIC_Inittructure; /*Cofure heNC Prmpion rityBts * NVC_PriorityGropConig(VIPiorityGoup_0); * nable he UART nerupt */NVIC_ntSrutur.NVIC_IRQChannel= USRT_IR; VI_Inittcue.NVIC_RQhlSubPriority = ; I_tSrture.NVIC_IRChanelCm E

7、NABE; NVI_It(&NVIC_Iittcture);/* 初始化时钟晶振 7MHZ*/oidysClock_nit(void)rrorStas HEStartpSttus;RCC_Dent();RCC_HEConfg(RCC_HE_N);HSStartUpStau =RCWaitrHSEStartUp();if(HSStartpSu= CCE) LA_PrefetchBufferCmd(FLASH_PrefecBuffr_Eable);FLASH_SetLatency(FLAH_Latenc_); RCC_HCLKConfg(RCCSCKiv1); RCPL2Config(RC_HCL

8、K_Div1); RCL1of(RCHCLKDiv);RCC_PLConig(RC_PLLSouce_SEDi1,RCC_PLLMl_9); RCC_PLLCmd(NBLE); whil(RCC_eFltatus(RC_LGPLRDY) =RET) ;RC_SCLConig(RC_SYCLKSue_PLCL); whie(RC_GeSYSCLKSource() != x0) ;/* USAT1 初始化 aud 波特率*/oid SART1_Init(nsgned t bud) UST_IitTypDef USAR_nitStrture; USA_IntStrture.USART_aRate=

9、baud;USART_nStructureUSAT_rdLengh = USART_WoLengt_8b; USAR_InitSructur.URTStoBit =USARTtpit_1; USAR_Inittrucue.USRT_Parity USAR_PartyN; AIiStctu.USAT_HrdaelowCorol = USAT_drFlontrol_Non; USARTnitStrucreUSRT_Mode = USA_de_Rx | USAT_oe_Tx; ART_nt(SART1, &ART_InitStrure); /USAR_ITCong(USART1, RT_IT_RX,

10、 ENBL); SART_Cmd(UR1,ENABLE);voiRS45Init(voi) SART_niTyDe USART_IntStrctre;SA_IntSrucueUSAT_udRa = 1520; UAT_InitStrctueUSRT_orength=RT_dLength_8b; USAR_Inittructr.USAR_SpBits = USATStoit_; USART_Iniucure.USAT_Pariy=USAParity_No; SART_InitStruure.UART_HadwreowCorol USART_HardwareFlowontrolone;UART_I

11、ntrucure.USAT_Mode = USAR_Mode_x USART_Me_Tx;USATInit(UART,USAT_IiStrcu); USART_Ionfig(USRT3,USRT_XNE, EN); USART_Cmd(SRT3, LE);od R485_SendBye(uigned chr temp)/whil(SA_elaSatus(USART3, USRT_FA_E) = REET);GPIOSetBit(PIB, GPI_Pin);Dela(100); SART_Sendaa(USART3, emp); wle(USAT_GtFlaStatus(SAR3, SART_F

12、LAG_TE) =ST);Delay(100);GPIO_ResetBits(GPIOB, GPIO_Pn_2);/return(ep);nined ha 485GetBy(void)while(USAR_Getagtatus(USAT3, SART_FLAGRX) = RESE);rurn(RT_eceiDat(SRT3)); /??oi RS45_Sndtrng (cha*s) while (* != ) R485SedBye(*(ngn char *));+;/* 从 SART1 发送一种字节*/void ST1_SenByte(usgned cartem) UATendat(USAR1

13、, temp); hile(UART_GFlgStatus(USART1,USA_FAG_TXE) = RST);void ST1GeByt(void) wile(UAT_etFlagStatu(USRT1, USAT_FLG_RE)= RESET);USART_Receivata(USAR1);/* 从 UART1 发送字符串*/vod SAT1rin(charpch)ie(pc !=/0) S_endBye(*(uigned a *)ch); pch+; /* 延时程序 s*/void Dely(unsineshrt tme) unigned short i, j;or(; time 0;

14、 time-) for(j= ; j10; j+) for(i 0; i100; i+);defne DC1_Ades (u2)0x4014)v16 ADCConerteValue;void ADC_Cofgration(voi) _IiTypeDef DA_ntucure;ADC_IniypeDef D_IntSruture;A_DeIit(DMA_Chne);/ ? MA_IiStructureDMrihealBaseAdr =_DR_Addres; DMA_IntStuctur.DMAMeoryBaedr = (u32)&DConvetedalue; DM_IntSucture.DMA_

15、DI DA_DIR_PripheraSR; DMA_nitStrure.DA_BufferSi = 2; DMA_Inittucure.DA_Peripheranc MA_PeriphrlIn_Dile; DMA_InitStrucure.DMA_MmoryI = DMA_emoryInEable;/DA_emyInc_isal; DMA_InitSructure.DMA_PerhealDaaSize = MA_PrihralDataSize_HalWor; DMAInittruture.DMAMmoryataSiz D_MemoyDaSize_HalfWd;AInitStructre.DMA

16、de DA_Moe_rlr; DMA_Iittrtr.MA_riority DMA_PrioritHigh; DMA_itruture.DM_M2M=A_M2M_Disble; _It(MA1_hann,&MA_Inttructue);/* Enale DMA1 chanel1 */DMA_Cm(MA1_Channl1,ENLE);/* AD conigatio -*/ ADC_IntStuctueAD_Mde=DC_Mod_Indpndet; DC_IntStructur.DC_ScnConMode=ABL; / ENLE ACnittructure.ADC_CotinosConod = E

17、ALE;ADitStructure.AD_Eternligon DC_ExternalTrignv_None;ADCIntStructur.C_talgn= C_DaaAgn_ight; AC_ntStructureADCbrOfhanl= 2; AniStructre.DCInteupEOCIE ;/no interrupAD_Init(DC1, AC_InitStrture); / ADC1 reglarhanel14 ofgration A_hanne15* ADCReglahannlCofig(ADC1, C_Chanel_8, 1, DC_Sameime_55Ccs5); ADC_g

18、ularCnneConfi(ADC1,ADhannel_15,, ADCSpeTime_5Cycles5); EnaeAD1DMA */ AC_DMACmd(ADC1,EBL); /* nable AC1/ ADC_Cmd(ADC, ENAL);/ Enale ADC rt calition egiste/ ACResetCalibrio(DC1); /* Check the nd o1 rset caibraonriter / hil(AD_GetesCaltionSats(DC1); / Stat ADC calbaration / ADC_tartCaibraion(ADC1); / C

19、heckte endf C1alibaton */ while(AD_GetCalbrationStatus(DC1)); /* Strt ADC1 Sofwae Convrsion /AC_oftareStartCnvCmd(AC,EALE);/*MIN 函数*/int main(vd)cha tri50 ; SysClok_Ini(); / 初始化系统时钟 2MHRC_onfiguratio(); /使能外设IO_ofiration(); /配备引脚GPIO_RetBits(GB, GPIO_Pin2);NVC_Cigratio(); 配备中断USRT_Init(11520); / 配备串

20、口1,波特率600 RS8_Init();CCogution();UART1_rintf(火牛开发板基本实验);wil()whie(!ADC_GetFlagStas(AC1,ADC_FLAG_EO);printf(stn, AD8 Value:%dmV/r/n, (DCCnverteValu*330/09));S45_SendSrng(sing);pintf(stri, AD5 Vlue:%dm/, (*(ADCConvertedlue+))*300/406);R485Sndtri(rng);ADCleaFlag(DC1,ADC_FG_EOC);阐明:本例规则通道里面具有路AD,EO转换完毕意思是说规则通道转换完毕才置位,就是两路ADC都转换完了才置位,DMA把转换完毕的采样数据送到指定SRAM里面,然后再从SRA中读出来,就是采样得到的数据。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!