#include "stm32f10x.h" #include "led.h" #include "usart.h" #include "delay.h" #include "oled.h" #include "adcx.h" #include "timer.h" #include "ble_app.h" extern _Bool Timer_Flag ; //ʱ¼äµ½ ±ê׼λ extern _Bool update_flag; //¸üбêÖ¾±äÁ¿ //ҪдÈëµ½STM32 FLASHµÄ×Ö·û´®Êý×é u8 TEXT_Buffer[]={"0000000"}; #define SIZE sizeof(TEXT_Buffer) //Êý×鳤¶È //#define FLASH_SAVE_ADDR 0X08020000 //ÉèÖÃFLASH ±£´æµØÖ·(±ØÐëΪżÊý£¬ÇÒÆäÖµÒª´óÓÚ±¾´úÂëËùÕ¼ÓÃFLASHµÄ´óС+0X08000000) #define FLASH_SAVE_ADDR 0X0800f400 //ÉèÖÃFLASH ±£´æµØÖ·(±ØÐëΪżÊý£¬ÇÒÆäÖµÒª´óÓÚ±¾´úÂëËùÕ¼ÓÃFLASHµÄ´óС+0X08000000) int main(void) { unsigned char p[16]=" "; u8 datatemp[SIZE]; _Bool Heart_OK = 0; //¶ÁÈ¡µ½ÕýÈ·ÐÄÂʱê־λ unsigned char Heart = 0; //ÐÄÂÊÖµ SystemInit();//ÅäÖÃϵͳʱÖÓΪ72M delay_init(72); LED_Init(); LED_On(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_3);//ÉèÖÃÖжÏÓÅÏȼ¶·Ö×éΪ×é3£º2λÇÀÕ¼ÓÅÏȼ¶£¬2λÏìÓ¦ÓÅÏȼ¶ USART1_Config();//´®¿Ú³õʼ»¯ OLED_Init(); printf("Start \n"); delay_ms(1000); //ÏÔʾ¡°ÐÄÂʪÑõ:¡± OLED_ShowChinese(0,0,2,16,1); OLED_ShowChinese(16,0,3,16,1); OLED_ShowChar(32,0,':',16,1); ADCx_Init(); TIM3_Int_Init(1999,71); //¶¨Ê±2msÖÐ¶Ï TIM2_Int_Init(199,7199); //10KhzµÄ¼ÆÊýƵÂÊ£¬¼ÆÊýµ½500Ϊ20ms Ble_Init(); // while (1) // { // LED_Toggle(); // printf("¹âÕÕÇ¿¶È: %d\r\n",light); // // OLED_ShowNum(80,0,light,3,16,1); // delay_ms(500); // } while(1) { if(Timer_Flag==1) //200msµ½ ¶ÁÈ¡Êý¾Ý { Timer_Flag = 0; //Çå³ý±êÖ¾ TIM_ITConfig(TIM2,TIM_IT_Update,DISABLE ); //ʹÄÜÖ¸¶¨µÄTIM3ÖжÏ,ÔÊÐí¸üÐÂÖÐ¶Ï TIM_ITConfig(TIM3,TIM_IT_Update,DISABLE ); //ʹÄÜÖ¸¶¨µÄTIM3ÖжÏ,ÔÊÐí¸üÐÂÖÐ¶Ï delay_ms(200); TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE ); //ʹÄÜÖ¸¶¨µÄTIM3ÖжÏ,ÔÊÐí¸üÐÂÖÐ¶Ï TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE ); //ʹÄÜÖ¸¶¨µÄTIM3ÖжÏ,ÔÊÐí¸üÐÂÖÐ¶Ï TIM_Cmd(TIM2, ENABLE); //ʹÄÜTIMx if (QS == true) //¶ÁÈ¡µ½ÁËÐÄÂÊÐźŠ{ QS = false; //Çå³ý±êÖ¾ µÈ´ýÏÂÒ»´Î¶ÁÈ¡ if(BPM>HEART_MIN_ERROR&&BPM