文件中包含了OLED+DHT11+超聲波+bh1750光照傳感器+ADC角度測量的程序
是我初學嵌入式的時候寫的 里面有相關的注釋 給大家分享下
單片機源程序如下:
- #include "main.h"
- #include "stm32f10x.h"
- #include "stdio.h"
- #include "my_adc.h"
- #include "adc2.h"
- #include "my_time.h"
- #include "my_gpio.h"
- #include "stm32f10x_usart.h"
- #include "public.h"
- #include "my_uart.h"
- #include "Lcd_f.h"
- #include "my_oled.h"
- #include "bmp.h"
- #include "bh1750.h"
- #include "Ultrasonic.h"
- #include "my_pwm.h"
- #include "my_dht11.h"
- /*
- GPIO : OLED(I2C)時鐘PA0 數據PA1 對應文件 my_oled
- 基準電壓測量 PA3接測量電壓 對應文件 adc2
- 角度測量 PA2接角度傳感器輸出叫 對應文件 my_adc
- 光照 時鐘接PA4 數據接PA5 ADDR接低或空著 對應文件 bh1750
- 超聲波測距 TRIG接B12 Echo接B13 對應文件 Ultrasonic
- 文件中一般都注釋過了
- */
- int main()
- {
- float Light_intensity;
- TIMER2_init(999,71);
- TIMER3_init(899,0);
- TIMER4_init(499,7199);//20ms
- pwm_init();
- Ultrasonic_init();
- adc_init();
- adc2_init(); //ADC初始化
- GPIOA_init();
- GPIOB_init();
- GPIOC_init();
- Init_BH1750();
- OLED_Init(); //初始化OLED
- OLED_Clear();
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置中斷優先級分組為組2
- OLED_DrawBMP(0,0,128,8,BMP1);
- delay_ms(1000);
- OLED_Clear();
- time_buzzer=5;
-
- while(1)
- {
- Light_intensity=read_BH1750();
- OLED_ADC_hs();
- OLED_ADC2_hs();
- oled_Light_intensity(Light_intensity);
- oled_Ultrasonic();
- DHT11_data_oled();
- }
-
- }
復制代碼
本人初學,僅供參考,如有錯誤,請大家回帖多多指教,代碼下載::
C8T6_V1.0.8.7z
(238.61 KB, 下載次數: 140)
2021-9-26 15:57 上傳
點擊文件名下載附件
|