心电图代码.doc_第1页
心电图代码.doc_第2页
心电图代码.doc_第3页
心电图代码.doc_第4页
心电图代码.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

#include #includestring.h#includestdio.h#includemath.h#includeconfiguration.h#includelcd.h#includedelay.hu16 voltage240;int main(void) u16 i,adcx; float temp; u16 x=0; u16 y; u16 X_VALUE; u16 X_LAST_VALUE; u16 Y_VALUE; u16 Y_LAST_VALUE; RCC_Configuration(); GPIO_Configuration(); ADC1_Configuration(); lcd_init(); lcd_clear(White); delay_ms(1000); while(1) for(i=0;i240;i+) voltagei=ADC_GetConversionValue(ADC1); delay_ms(100); for(i=0;i240) x=0; lcd_clear(White); if(Y_LAST_VALUE!=0&x!=0&X_LAST_VALUE!=240&X_LAST_VALUE!=0)lcd_drawline(X_LAST_VALUE,Y_LAST_VALUE,x,y,Red); #include #includeconfiguration.hvoid RCC_Configuration(void) ErrorStatus HSEStartUpStatus; /定义外部高速晶体启动状态枚举变量 RCC_DeInit(); /复位RCC外部设备寄存器到默认值 RCC_HSEConfig(RCC_HSE_ON); /打开外部高速晶振 HSEStartUpStatus=RCC_WaitForHSEStartUp(); /等待外部高速时钟准备好 if(HSEStartUpStatus=SUCCESS) /外部高速时钟已经准备好 FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); FLASH_SetLatency(FLASH_Latency_2); RCC_HCLKConfig(RCC_SYSCLK_Div1); /配置AHB(HCLK)时钟=SYSCLK RCC_PCLK2Config(RCC_HCLK_Div1); /配置APB2(PCLK2)时钟=AHB时钟 RCC_PCLK1Config(RCC_HCLK_Div2); /配置APB1(PCLK1)时钟=AHB 1/2时钟 RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9); /配置PLL时钟=外部高速晶体时钟*9 RCC_PLLCmd(ENABLE); /使能PLL时钟 while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)=RESET) /等待PLL时钟就绪 RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); /配置系统时钟=PLL时钟 while(RCC_GetSYSCLKSource()!=0x08) /检查PLL时钟是否作为系统时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE|RCC_APB2Periph_ADC1,ENABLE); /*GPIO_Configuration*void GPIO_Configuration(void)GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; /控制位GPIO_Init(GPIOE,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOD,&GPIO_InitStructure); / 数据传输位GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN; /模拟输入GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure); /*ADC1_Configuration*void ADC1_Configuration(void) ADC_InitTypeDef ADC_InitStructure;ADC_DeInit(ADC1); /将外设 ADC1 的全部寄存器重设为缺省值 ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; /ADC工作模式:ADC1和ADC2工作在独立模式ADC_InitStructure.ADC_ScanConvMode =DISABLE; /模数转换工作在单通道模式ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; /模数转换工作在连续转换模式ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;/外部触发注入转换关闭ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; /ADC数据右对齐ADC_InitStructure.ADC_NbrOfChannel = 1; /顺序进行规则转换的ADC通道的数目ADC_Init(ADC1, &ADC_InitStructure); /根据ADC_InitStruct中指定的参数初始化外设ADCx的寄存器RCC_ADCCLKConfig(RCC_PCLK2_Div8); /ADC时钟经过PCLK2,8分频得到,为9MHZ /设置指定ADC的规则组通道,设置它们的转化顺序和采样时间/ADC1,ADC通道x,规则采样顺序值为y,采样时间为239.5周期ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_239Cycles5 ); / ADC_DMACmd(ADC1, ENABLE);/ 开启ADC的DMA支持(要实现DMA功能,还需独立配置DMA通道等参数)ADC_Cmd(ADC1, ENABLE); /使能指定的ADC1ADC_ResetCalibration(ADC1); /复位指定的ADC1的校准寄存器 while(ADC_GetResetCalibrationStatus(ADC1); /获取ADC1复位校准寄存器的状态,设置状态则等待ADC_StartCalibration(ADC1); /开始指定ADC1的校准状态while(ADC_GetCalibrationStatus(ADC1); /获取指定ADC1的校准程序,设置状态则等待ADC_SoftwareStartConvCmd(ADC1, ENABLE); /*DMA_Configuration*void DMA_Configuration(void)DMA_InitTypeDef DMA_InitStructure;DMA_DeInit(DMA1_Channel1); /将DMA的通道1寄存器重设为缺省值DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)&ADC1-DR; /DMA外设ADC基地址DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&ADC_GetConversionValue; /DMA内存基地址DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; /内存作为数据传输的目的地DMA_InitStructure.DMA_BufferSize = 1; /DMA通道的DMA缓存的大小DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; /外设地址寄存器不变DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; /内存地址寄存器递增DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; /数据宽度为16位DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; /数据宽度为16位DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; /工作在循环缓存模式DMA_InitStructure.DMA_Priority = DMA_Priority_High; /DMA通道 x拥有高优先级 DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; /DMA通道x没有设置为内存到内存传输DMA_Init(DMA1_Channel1, &DMA_InitStructure); /根据DMA_InitStruct中指定的参数初始化DMA的通道DMA_Cmd(DMA1_Channel1, ENABLE); /*TIME_Configuration* void TIME_Configuration(void) TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE); /使能TIM2时钟 TIM_DeInit(TIM2); TIM_TimeBaseInitStruct.TIM_Prescaler = 599; /预分频,此值加一为分频的除数 TIM_TimeBaseInitStruct.TIM_CounterMode =TIM_CounterMode_Up; /向上计数 TIM_TimeBaseInitStruct.TIM_Period =3599; /399+1 TIM_TimeBaseInitStruct.TIM_ClockDivision =TIM_CKD_DIV1; TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStruct); TIM_ClearFlag(TIM2, TIM_FLAG_Update); TIM_ITConfig(TIM2,TIM_FLAG_Update,ENABLE); /使能更新溢出中断 TIM_Cmd(TIM2,ENABLE);/*NVIC_Configuration*void NVIC_Configuration(void) NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); /采用组别2 NVIC_InitStructure.NV

温馨提示

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

最新文档

评论

0/150

提交评论