硬件:
開發(fā)板:小熊派
主控MCU:Hi3861
接線:
MPU6050:
SCL:IO_01
SDA:IO_00
OLED:
SCL:IO_09
SDA:IO_10
效果圖:
運(yùn)行效果圖
軟件方案:
MPU6050驅(qū)動(dòng)
這部分代碼參考使用小熊派例程代碼
初始化引腳:
GpioInit(); IoSetFunc(WIFI_IOT_IO_NAME_GPIO_0, WIFI_IOT_IO_FUNC_GPIO_0_I2C1_SDA); // GPIO_0復(fù)用為I2C1_SDA IoSetFunc(WIFI_IOT_IO_NAME_GPIO_1, WIFI_IOT_IO_FUNC_GPIO_1_I2C1_SCL); // GPIO_1復(fù)用為I2C1_SCL I2cInit(WIFI_IOT_I2C_IDX_1, 400000); /* baudrate: 400kbps */ I2cSetBaudrate(WIFI_IOT_I2C_IDX_1, 400000);
OLED驅(qū)動(dòng)
相關(guān)代碼在文末附件中。
在oled.c中初始化引腳:
//初始化 GpioInit(); //GPIO_10復(fù)用為I2C0_SDA IoSetFunc(WIFI_IOT_IO_NAME_GPIO_10, WIFI_IOT_IO_FUNC_GPIO_10_I2C0_SDA); //GPIO_9復(fù)用為I2C0_SCL IoSetFunc(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_IO_FUNC_GPIO_9_I2C0_SCL); //baudrate: 400kbps I2cInit(WIFI_IOT_I2C_IDX_0, 400000); I2cSetBaudrate(WIFI_IOT_I2C_IDX_0, 400000);
在主線程中獲取mpu6050數(shù)據(jù),并在oled顯示
// 定義陀螺儀數(shù)據(jù) Sensor_Data_TypeDef Sensor_Data; char array[64]; static int task_sensor_entry(void) { float k = 127.0/4200; OLED_Init(); Sensor_Init(); OLED_Clear(); while(1) { //OLED_Show(); usleep(100000); // 讀取數(shù)據(jù) Sensor_Read_Data(); // 邏輯處理 printf("Accel[0]:%6d Accel[1]:%6d Accel[2]:%6drn", (int)Sensor_Data.Accel[0],(int)Sensor_Data.Accel[1],(int)Sensor_Data.Accel[2]); // 顯示實(shí)時(shí)數(shù)據(jù) memset(array, 0, sizeof(array) - 1); sprintf(array, "x:%6d", (int)Sensor_Data.Accel[0]); OLED_ShowString(0,0,array,16); memset(array, 0, sizeof(array) - 1); sprintf(array, "y:%6d", (int)Sensor_Data.Accel[1]); OLED_ShowString(0,20,array,16); OLED_ProcessBar(0,40,(int)((Sensor_Data.Accel[1]+2100)*k)); OLED_Refresh(); } return 0; } static void OC_mpu6050_oled(void) { osThreadAttr_t attr; attr.name = "task_main_entry"; attr.attr_bits = 0U; attr.cb_mem = NULL; attr.cb_size = 0U; attr.stack_mem = NULL; attr.stack_size = 2048; attr.priority = 25; attr.name = "task_sensor_entry"; if (osThreadNew((osThreadFunc_t)task_sensor_entry, NULL, &attr) == NULL) { printf("Falied to create task_sensor_entry!n"); } } APP_FEATURE_INIT(OC_mpu6050_oled);
相關(guān)代碼文件
完整代碼在資源中
審核編輯 黃宇
-
OLED
+關(guān)注
關(guān)注
119文章
6202瀏覽量
224254 -
MPU6050
+關(guān)注
關(guān)注
39文章
307瀏覽量
71424 -
Hi3861
+關(guān)注
關(guān)注
1文章
60瀏覽量
6516
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
評(píng)論