基于STM32艾灸床监控反馈系统设计_第1页
基于STM32艾灸床监控反馈系统设计_第2页
基于STM32艾灸床监控反馈系统设计_第3页
基于STM32艾灸床监控反馈系统设计_第4页
基于STM32艾灸床监控反馈系统设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论