硬件:
開發板:小熊派
主控MCU:Hi3861
接線:
MPU6050:
SCL:IO_01
SDA:IO_00
OLED:
SCL:IO_09
SDA:IO_10
效果圖:
運行效果圖
軟件方案:
MPU6050驅動
這部分代碼參考使用小熊派例程代碼
初始化引腳:
GpioInit(); IoSetFunc(WIFI_IOT_IO_NAME_GPIO_0, WIFI_IOT_IO_FUNC_GPIO_0_I2C1_SDA); // GPIO_0復用為I2C1_SDA IoSetFunc(WIFI_IOT_IO_NAME_GPIO_1, WIFI_IOT_IO_FUNC_GPIO_1_I2C1_SCL); // GPIO_1復用為I2C1_SCL I2cInit(WIFI_IOT_I2C_IDX_1, 400000); /* baudrate: 400kbps */ I2cSetBaudrate(WIFI_IOT_I2C_IDX_1, 400000);
OLED驅動
相關代碼在文末附件中。
在oled.c中初始化引腳:
//初始化 GpioInit(); //GPIO_10復用為I2C0_SDA IoSetFunc(WIFI_IOT_IO_NAME_GPIO_10, WIFI_IOT_IO_FUNC_GPIO_10_I2C0_SDA); //GPIO_9復用為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數據,并在oled顯示
// 定義陀螺儀數據 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); // 讀取數據 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]); // 顯示實時數據 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);
相關代碼文件
完整代碼在資源中
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
OLED
+關注
關注
119文章
6200瀏覽量
224194 -
MPU6050
+關注
關注
39文章
307瀏覽量
71403 -
Hi3861
+關注
關注
1文章
59瀏覽量
6500
發布評論請先 登錄
相關推薦
第6節 Hi3861 OLED屏幕驅動 基于鴻蒙系統
`` 本帖最后由 jf_39160458 于 2020-10-2 22:37 編輯
Hi3861 OLED驅動Hispark WiFi開發套件又提供一個OLED屏幕,但是鴻蒙源碼
發表于 10-02 22:33
【HarmonyOS HiSpark Wi-Fi IoT套件】I2C驅動 Hi3861 驅動OLED屏幕顯示
,大家自己下載。(2)設置I2C引腳復用確定i2c引腳,查看原理圖,可以看到OLED屏幕使用到的是I2C0,引腳是GPIO13、GPIO14所以我們需要修改源碼,在vendor\hisi\hi
發表于 10-16 09:26
利用小熊派獲取MPU6050六軸原始數據的過程
摘要:使用小熊派開發板,通過硬件IIC與MPU6050六軸傳感器模塊通信,完成相應寄存器配置,成功獲取陀螺儀、加速度計數據。本問主要講述使用小熊派
發表于 02-10 07:00
STM32 MPU6050模塊數據獲取
下載,在公眾號:小白學移動機器人,發送:MPU6050,即可獲得。2.4.1 解決的問題DMP庫的移植(文件已被更改過,更好的移植)MPU6050數據的
發表于 02-10 06:01
Hi3861潤和開發板+小熊派,智能家居項目
+華為云IoTDA+Android APP......Haohanyh-HAMOS-ProjectX是我們的一個LiGHTs計劃中的部分,目的就是開源我們在hi3861上與物聯網(智能家居)上做的探索
發表于 04-30 00:37
MPU6050原始數據處理
我用MPU6050接到小熊派開發版上讀取到加速度原始數據,按照網上說的公式轉換成加速度,加速度基本上都是在0附近,要大力快速晃動MPU6050
發表于 05-17 19:28
輕量系統:小熊派BearPi-HM Nano(HI3861)
開發板名稱(芯片型號)
小熊派BearPi-HM Nano(HI3861)
芯片架構
CPU頻率
介紹(字數請控制在200字以內)
小熊派BearPi-HM Nano外型上延續了三
發表于 10-19 11:10
STM32 MPU6050數據獲取、數據處理
下載,在公眾號:小白學移動機器人,發送:MPU6050,即可獲得。2.4.1 解決的問題DMP庫的移植(文件已被更改過,更好的移植)MPU6050數據的
發表于 12-06 12:06
?33次下載
如何利用小熊派獲取MPU6050六軸原始數據
摘要:使用小熊派開發板,通過硬件IIC與MPU6050六軸傳感器模塊通信,完成相應寄存器配置,成功獲取陀螺儀、加速度計數據。本問主要講述使用小熊派
發表于 12-06 14:21
?18次下載
K013 基于51/STM32 MPU6050測試 OLED0.96顯示原始數據
. 接線六.代碼說明1. MPU6050引腳配置2. MPU6050模塊寫數據與命令函數3. MPU6050模塊初始化函數4. MPU6050
發表于 12-06 16:06
?29次下載
android 獲取gpio電平值_STM32 MPU6050數據獲取(IIC + DMP)
下載,在公眾號:小白學移動機器人,發送:MPU6050,即可獲得。2.4.1 解決的問題DMP庫的移植(文件已被更改過,更好的移植)MPU6050數據的
發表于 12-06 17:06
?17次下載
評論