搞了二周终于读取数据了
单片机源程序如下:
- #include "includes.h"//添加外部各种头文件
- //#include "Globalvariable.h"//添加全局变量 // Device header
- int main(void)
- {
- u8 k=0;
- u16 AD1=0;
-
-
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
- uart_init(115200); //串口初始化为9600
-
- delay_init(); //延时函数初始化
- LED_Init(); //初始化与LED连接的硬件接口
- KEY_Init(); //初始化与按键连接的硬件接口
- I2C_GPIO_Config(); //IIC引脚初始化
-
- Adc_Init(); //ADC通道初始化
- // TIM1_PWM_Init(899,0); //不分频。PWM频率=72000/(899+1)=80Khz
- // TIM4_PWM_Init(7999,8999);//方波频率1Hz
- TIM4_PWM_Init(899,0); //方波频率1Hz
- delay_ms(10);
- Init_MPU6050(); //初始化MPU6050
- OLED_Init(); //初始化屏幕OLED
- InitBME280(); //初始化BME280
-
-
- OLED_P16x16Ch(0,0,0);//写温字
- OLED_P16x16Ch(16,0,1);//写度字
- OLED_P8x16Str(32,0,":");//第一行 -- 8x16的显示单元显示ASCII码
- OLED_P16x16Ch(96,0,6);//写度字
-
- OLED_P16x16Ch(0,2,2);//写湿字
- OLED_P16x16Ch(16,2,1);//写度字
- OLED_P8x16Str(32,2,":");//第一行 -- 8x16的显示单元显示ASCII码
- OLED_P8x16Str(96,2,"%");//第一行 -- 8x16的显示单元显示ASCII码
-
- OLED_P16x16Ch(0,4,3);//写高字
- OLED_P16x16Ch(16,4,1);//写度字
- OLED_P8x16Str(32,4,":");//第一行 -- 8x16的显示单元显示ASCII码
- OLED_P16x16Ch(96,4,7);//写米字
-
- OLED_P16x16Ch(0,6,4);//写气字
- OLED_P16x16Ch(16,6,5);//写压字
- OLED_P8x16Str(32,6,":");//第一行 -- 8x16的显示单元显示ASCII码
- OLED_P8x16Str(104,6,"hPa");//第一行 -- 8x16的显示单元显示ASCII码
-
- while(1)
- {
-
- ////////////////---MPU6050---/////////////////////
- // READ_MPU6050(); //读取MPU6050数据
-
- // x1=Single_Read(MPU6050_Addr,GYRO_XOUT_L);
- // x2=Single_Read(MPU6050_Addr,GYRO_XOUT_H);
- // x3 = (x2<<8)|x1;
- // x3 =(double)x3*250/327.68; //读取计算X轴数据
-
- // printf("G_X1=:%d\n",x1);//回车加换行
- // printf("X3=:%d\r\n",x3);//回车加换行
-
- OLED_P8x16FLOAT(40,0,BMP280_Temperature()/100,2);//温度
- if((0x01&BME280_readdata(0xF3))==1)
- {
- OLED_P8x16FLOAT(40,2,BMP280_humidity(),2);//湿度
- }
- OLED_P8x16FLOAT(40,4,BMP280_calcAltitude_AVE(BMP280_calcAltitude()),2);//高度
- OLED_P8x16FLOAT(40,6,BMP280_pressure()/100,2);//气压
-
- ////////////////---ADC---/////////////////////
-
- AD1=Get_Adc(0);//读取PA0的模拟量输入信号值
- //
- //////////////////---PWM---/////////////////////
- TIM_SetCompare1(TIM4,AD1);//占空比10%
- TIM_SetCompare2(TIM4,AD1);//占空比20%
- TIM_SetCompare3(TIM4,AD1);//占空比50%
- TIM_SetCompare4(TIM4,AD1);//占空比80%
-
- ////////////////---LED---/////////////////////
- LED_13=!LED_13;
-
- ////////////////---KEY---/////////////////////
- k=KEY_Scan(0); //得到键值
- switch(k)
- {
- case 1:
- LED_14=!LED_14;
- break;
- case 2:
- LED_15=!LED_15;
- break;
- case 3:
- LED_15=!LED_15;
- LED_14=!LED_14;
- break;
- default:
- delay_ms(10);
- }
- }
- }
复制代码
所有代码51hei附件下载:
STM32 F103-6050.7z
(210.25 KB, 下载次数: 67)
|