版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-16-附录A总原理图附录B程序/*USERCODEBEGINHeader*//*********************************************************************************@file:main.c*@brief:Mainprogrambody*******************************************************************************@attention**Copyright(c)STMicroelectronics.*Allrightsreserved.**ThissoftwareislicensedundertermsthatcanbefoundintheLICENSEfile*intherootdirectoryofthissoftwarecomponent.*IfnoLICENSEfilecomeswiththissoftware,itisprovidedAS-IS.********************************************************************************//*USERCODEENDHeader*//*Includes*/#include"main.h"#include"adc.h"#include"dma.h"#include"tim.h"#include"usart.h"#include"gpio.h"/*Privateincludes*//*USERCODEBEGINIncludes*//*USERCODEENDIncludes*//*Privatetypedef*//*USERCODEBEGINPTD*//*USERCODEENDPTD*//*Privatedefine*//*USERCODEBEGINPD*//*USERCODEENDPD*//*Privatemacro*//*USERCODEBEGINPM*//*USERCODEENDPM*//*Privatevariables*//*USERCODEBEGINPV*//*USERCODEENDPV*//*Privatefunctionprototypes*/voidSystemClock_Config(void);/*USERCODEBEGINPFP*//*USERCODEENDPFP*//*Privateusercode*//*USERCODEBEGIN0*/externvoidStart();externvoidLoop();/*USERCODEEND0*//***@briefTheapplicationentrypoint.*@retvalint*/intmain(void){/*USERCODEBEGIN1*//*USERCODEEND1*//*MCUConfiguration*//*Resetofallperipherals,InitializestheFlashinterfaceandtheSystick.*/HAL_Init();/*USERCODEBEGINInit*//*USERCODEENDInit*//*Configurethesystemclock*/SystemClock_Config();/*USERCODEBEGINSysInit*//*USERCODEENDSysInit*//*Initializeallconfiguredperipherals*/MX_GPIO_Init();MX_DMA_Init();MX_TIM3_Init();MX_ADC1_Init();MX_USART2_UART_Init();/*USERCODEBEGIN2*/ Start();/*USERCODEEND2*//*Infiniteloop*//*USERCODEBEGINWHILE*/while(1){ Loop();/*USERCODEENDWHILE*//*USERCODEBEGIN3*/}/*USERCODEEND3*/}/***@briefSystemClockConfiguration*@retvalNone*/voidSystemClock_Config(void){RCC_OscInitTypeDefRCC_OscInitStruct={0};RCC_ClkInitTypeDefRCC_ClkInitStruct={0};RCC_PeriphCLKInitTypeDefPeriphClkInit={0};/**InitializestheRCCOscillatorsaccordingtothespecifiedparameters*intheRCC_OscInitTypeDefstructure.*/RCC_OscInitStruct.OscillatorType=RCC_OSCILLATORTYPE_HSI;RCC_OscInitStruct.HSIState=RCC_HSI_ON;RCC_OscInitStruct.HSICalibrationValue=RCC_HSICALIBRATION_DEFAULT;RCC_OscInitStruct.PLL.PLLState=RCC_PLL_ON;RCC_OscInitStruct.PLL.PLLSource=RCC_PLLSOURCE_HSI_DIV2;RCC_OscInitStruct.PLL.PLLMUL=RCC_PLL_MUL16;if(HAL_RCC_OscConfig(&RCC_OscInitStruct)!=HAL_OK){Error_Handler();}/**InitializestheCPU,AHBandAPBbusesclocks*/RCC_ClkInitStruct.ClockType=RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;RCC_ClkInitStruct.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK;RCC_ClkInitStruct.AHBCLKDivider=RCC_SYSCLK_DIV1;RCC_ClkInitStruct.APB1CLKDivider=RCC_HCLK_DIV2;RCC_ClkInitStruct.APB2CLKDivider=RCC_HCLK_DIV1;if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct,FLASH_LATENCY_2)!=HAL_OK){Error_Handler();}PeriphClkInit.PeriphClockSelection=RCC_PERIPHCLK_ADC;PeriphClkInit.AdcClockSelection=RCC_ADCPCLK2_DIV8;if(HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit)!=HAL_OK){Error_Handler();}}/*USERCODEBEGIN4*/externvoidTimerN50msCallback();/*USERCODEEND4*//***@briefPeriodelapsedcallbackinnonblockingmode*@noteThisfunctioniscalledwhenTIM4interrupttookplace,inside*HAL_TIM_IRQHandler().ItmakesadirectcalltoHAL_IncTick()toincrement*aglobalvariable"uwTick"usedasapplicationtimebase.*@paramhtim:TIMhandle*@retvalNone*/voidHAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef*htim){/*USERCODEBEGINCallback0*//*USERCODEENDCallback0*/if(htim->Instance==TIM4){HAL_IncTick();}/*USERCODEBEGINCallback1*/elseif(htim->Instance==TIM3){TimerN50msCallback();}/*USERCODEENDCallback1*//***@briefThisfunctionisexecutedincaseoferroroccurrence.*@retvalNone*/voidError_Handler(void){/*USERCODEBEGINError_Handler_Debug*//*UsercanaddhisownimplementationtoreporttheHALerrorreturnstate*/__disable_irq();while(1){}/*USERCODEENDError_Handler_Debug*#ifdefUSE_FULL_ASSERT/***@briefReportsthenameofthesourcefileandthesourcelinenumber*wheretheassert_paramerrorhasoccurred.*@paramfile:pointertothesourcefilename*@paramline:assert_paramerrorlinesourcenumber*@retvalNone*/voidassert_failed(uint8_t*file,uint32_tline){/*USERCODEBEGIN6*//*Usercanaddhisownimplementationtoreportthefilenameandlinenumber,ex:printf("Wrongparametersvalue:file%sonline%d\r\n",file,line)*//*USERCODEEND6*}#endif/*USE_FULL_ASSERT*//*USERCODEBEGINHeader*//*********************************************************************************@fileadc.c*@briefThisfileprovidescodefortheconfiguration*oftheADCinstances.*******************************************************************************@attention*Copyright(c)TMicroelectronics.*Allrightsreserved.*ThissoftwareislicensedundertermsthatcanbefoundintheLICENSEfile*intherootdirectoryofthissoftwarecomponent.*IfnoLICENSEfilecomeswiththissoftware,itisprovidedAS-IS.*******************************************************************************//*USERCODEENDHeader*//*Includes*/#include"adc.h"/*USERCODEBEGIN0*//*USERCODEEND0*/ADC_HandleTypeDefhadc1;DMA_HandleTypeDefhdma_adc1;/*ADC1initfunction*/voidMX_ADC1_Init(void){/*USERCODEBEGINADC1_Init0*//*USERCODEENDADC1_Init0*/ADC_ChannelConfTypeDefsConfig={0};/*USERCODEBEGINADC1_Init1*//*USERCODEENDADC1_Init1*//**Commonconfig*/hadc1.Instance=ADC1;hadc1.Init.ScanConvMode=ADC_SCAN_DISABLE;hadc1.Init.ContinuousConvMode=ENABLE;hadc1.Init.DiscontinuousConvMode=DISABLE;hadc1.Init.ExternalTrigConv=ADC_SOFTWARE_START;hadc1.Init.DataAlign=ADC_DATAALIGN_RIGHT;hadc1.Init.NbrOfConversion=1;if(HAL_ADC_Init(&hadc1)!=HAL_OK){Error_Handler();}/**ConfigureRegularChannel*/sConfig.Channel=ADC_CHANNEL_9;sConfig.Rank=ADC_REGULAR_RANK_1;sConfig.SamplingTime=ADC_SAMPLETIME_239CYCLES_5;if(HAL_ADC_ConfigChannel(&hadc1,&sConfig)!=HAL_OK){Error_Handler();}/*USERCODEBEGINADC1_Init2*//*USERCODEENDADC1_Init2*/}voidHAL_ADC_MspInit(ADC_HandleTypeDef*adcHandle){GPIO_InitTypeDefGPIO_InitStruct={0};if(adcHandle->Instance==ADC1){/*USERCODEBEGINADC1_MspInit0*//*USERCODEENDADC1_MspInit0*//*ADC1clockenable*/__HAL_RCC_ADC1_CLK_ENABLE();__HAL_RCC_GPIOB_CLK_ENABLE();/**ADC1GPIOConfigurationPB1>ADC1_IN9*/GPIO_InitStruct.Pin=GPIO_PIN_1;GPIO_InitStruct.Mode=GPIO_MODE_ANALOG;HAL_GPIO_Init(GPIOB,&GPIO_InitStruct);/*ADC1DMAInit*//*ADC1Init*/hdma_adc1.Instance=DMA1_Channel1;hdma_adc1.Init.Direction=DMA_PERIPH_TO_MEMORY;hdma_adc1.Init.PeriphInc=DMA_PINC_DISABLE;hdma_adc1.Init.MemInc=DMA_MINC_ENABLE;hdma_adc1.Init.PeriphDataAlignment=DMA_PDATAALIGN_HALFWORD;hdma_adc1.Init.MemDataAlignment=DMA_MDATAALIGN_HALFWORD;hdma_adc1.Init.Mode=DMA_CIRCULAR;hdma_adc1.Init.Priority=DMA_PRIORITY_LOW;if(HAL_DMA_Init(&hdma_adc1)!=HAL_OK){Error_Handler();}__HAL_LINKDMA(adcHandle,DMA_Handle,hdma_adc1);/*USERCODEBEGINADC1_MspInit1*//*USERCODEENDADC1_MspInit1*/}}voidHAL_ADC_MspDeInit(ADC_HandleTypeDef*adcHandle){if(adcHandle->Instance==ADC1{/*USERCODEBEGINADC1_MspDeInit0*//*USERCODEENDADC1_MspDeInit0*//*Peripheralclockdisable*/__HAL_RCC_ADC1_CLK_DISABLE();/**ADC1GPIOConfigurationPB1>ADC1_IN9*/HAL_GPIO_DeInit(GPIOB,GPIO_PIN_1);/*ADC1DMADeInit*/HAL_DMA_DeInit(adcHandle->DMA_Handle);/*USERCODEBEGINADC1_MspDeInit1*//*USERCODEENDADC1_MspDeInit1*/}}/*USERCODEBEGIN1*/*USERCODEEND1*//*USERCODEBEGINHeader*//*********************************************************************************@filedma.c*@briefThisfileprovidescodefortheconfiguration*ofalltherequestedmemorytomemoryDMAtransfers.*******************************************************************************@attention*Copyright(c)STMicroelectronics.*Allrightsreserved.*ThissoftwareislicensedundertermsthatcanbefoundintheLICENSEfile*intherootdirectoryofthissoftwarecomponent.*IfnoLICENSEfilecomeswiththissoftware,itisprovidedAS-IS.*******************************************************************************//*USERCODEENDHeader*//*Includes*/#include"dma.h"/*USERCODEBEGIN0*//*USERCODEEND0*//**//*ConfigureDMA*//**//*USERCODEBEGIN1*//*USERCODEEND1*//***EnableDMAcontrollerclock*/voidMX_DMA_Init(void){/*DMAcontrollerclockenable*/__HAL_RCC_DMA1_CLK_ENABLE();/*DMAinterruptinit*//*DMA1_Channel1_IRQninterruptconfiguration*/HAL_NVIC_SetPriority(DMA1_Channel1_IRQn,0,0);HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn);/*DMA1_Channel6_IRQninterruptconfiguration*/HAL_NVIC_SetPriority(DMA1_Channel6_IRQn,0,0);HAL_NVIC_EnableIRQ(DMA1_Channel6_IRQn);/*DMA1_Channel7_IRQninterruptconfiguration*/HAL_NVIC_SetPriority(DMA1_Channel7_IRQn,0,0);HAL_NVIC_EnableIRQ(DMA1_Channel7_IRQn);}/*USERCODEBEGIN2*//*USERCODEEND2*//*USERCODEBEGINHeader*//**********************
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2034年中国足球鞋行业市场深度评估及投资战略规划报告
- 2024-2034年中国调速器行业发展现状及十三五规划研究报告
- 2024-2034年中国表面活性剂行业发展趋势预测及投资规划研究报告
- 2024-2034年中国蒿甲醚行业市场深度评估及投资战略规划报告
- 2024-2034年中国花生休闲食品行业调研及投资策略报告
- 2024-2034年中国航电图形显控模块行业市场供需格局及投资前景展望报告
- 2024-2034年中国脱水蒜粉市场评估分析及发展前景调研战略研究报告
- 2024-2034年中国聚脲行业发展趋势预测及投资战略咨询报告
- 2024-2034年中国羧甲基纤维素CMC含聚阴离子纤维素市场深度调查及投资方向研究报告
- 2024-2034年中国综合训练鞋行业市场调查研究及发展战略规划报告
- Unit 2 There is a park near my home Lesson 7(说课稿)-2022-2023学年英语六年级下册
- 煤矿开拓队队务会暨班组长例会制度
- 某V-M双闭环不可逆直流调速系统设计
- 2023年全国新高考Ⅰ卷(新课标1)高考数学试卷真题(含答案逐题详解)
- 万吨复合肥m造粒塔工程施工组织设计
- 《工业自动控制设备编程与调试》课程思政示范课
- 河北省衡水市高职单招2023年英语自考真题(附答案)
- 2023四川达州市宣汉县招聘专职网格员189人笔试备考题库及答案解析
- 2023年第二季度国家时事热点
- 悬臂式隧道掘进机施工工艺
- 2021年山东省临沂市中考生物试题(原卷版)
评论
0/150
提交评论