本帖最后由 ningling_21 于 2019-7-11 20:13 编辑
天气好热,刚刚看到活动却发现马上就要结束了,于是抓紧时间参加一个。
此 检测器采用的芯片是STM32F103C8T6,传感器是PMS5003,还有温湿度一体传感器SHT20(未使用),显示屏12864。
虽然这款芯片引脚不算太多但资源丰富,主频72MHZ,128K-FLASH,20KRAM,ADC,DMA,多达37个快速I/O口,7个定时器,9个通信接口,USART,CAN,USB,IIC,一个都不少。
- int main(void)
- {
- uint8_t l_u8_flag_led =0;
-
- uint16_t i=0;
- uint16_t u16_temp =0;
- uint16_t u16_humi =0;
-
- /*初始化gpio,*/
- Sys_gpio_init();
- RESET:
- if(flag_sys_off_stat ==0x5a)
- {
- //关机并检测按键
- Init_lcd(0x22);
- GPIO_SetBits(GPIOB, GPIO_Pin_5) ; //LCD电源
-
- GPIO_ResetBits(GPIOB, GPIO_Pin_1) ; //传感器低功耗控制,低电平休眠
- GPIO_SetBits(GPIOA, GPIO_Pin_1) ; //RUN
- while(1)
- {
- key_in_Stat=GPIO_ReadInputDataBit(GPIOB , GPIO_Pin_11);//按键输入
- if( key_in_Stat<1)
- {
- GPIO_ResetBits(GPIOB, GPIO_Pin_5) ;//LCD电源
- GPIO_ResetBits(GPIOB, GPIO_Pin_0) ;//背光
- GPIO_SetBits(GPIOB, GPIO_Pin_1) ;//传感器低功耗控制,低电平休眠
- GPIO_SetBits(GPIOB, GPIO_Pin_12); //CS =1;
- break;
- }
- }
- }
- /* USART1 config */
- delay_init();
- //------------------------------------------------------------------
- Init_lcd(0x24); //LCD对比度调节
- SET_screen();//显示图片,欢迎画面
- USART2_Config(); //串口2
- NVIC_Configuration();
- /* enable adc1 and config adc1 to dma mode */
- //------------------------------------------------------------------
- Init_data();
- for(i=0;i<50000;i++)
- {
- u16_pm25=100;
- while(u16_pm25--);
- }
- clr_screen();
- for(i=0;i<5000;i++);
- //------------------------------------------------------------------
- //------------------------------------------------------------------
- l32_run_cnt=10000;
- while(l32_run_cnt--);
- Disp_lcd_init();
- //------------------------------------------------------------------
- Exti_init();
- Tim2_init(); //
- l32_run_cnt=0;
- u16_pm25=0;
由于手头没有温湿度传感器所以屏幕没显示当前的温度和湿度,如果换上带温湿度一体的PM2.5传感器则可以显示。
祝ST的产品线做的越来越广,芯片资源做的越来越丰富,ST发展芝麻开花节节高!
|