硬件:
開發(fā)板:小熊派
主控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);
相關代碼文件
完整代碼在資源中
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
OLED
+關注
關注
121文章
6336瀏覽量
232709 -
MPU6050
+關注
關注
39文章
310瀏覽量
74562 -
Hi3861
+關注
關注
1文章
64瀏覽量
7532
發(fā)布評論請先 登錄
相關推薦
熱點推薦
第6節(jié) Hi3861 OLED屏幕驅動 基于鴻蒙系統(tǒng)
`` 本帖最后由 jf_39160458 于 2020-10-2 22:37 編輯
Hi3861 OLED驅動Hispark WiFi開發(fā)套件又提供一個OLED屏幕,但是鴻蒙源碼
發(fā)表于 10-02 22:33
【HarmonyOS HiSpark Wi-Fi IoT套件】I2C驅動 Hi3861 驅動OLED屏幕顯示
,大家自己下載。(2)設置I2C引腳復用確定i2c引腳,查看原理圖,可以看到OLED屏幕使用到的是I2C0,引腳是GPIO13、GPIO14所以我們需要修改源碼,在vendor\hisi\hi
發(fā)表于 10-16 09:26
DevEco Device Tool 2.1 Beta1 的亮點: Hi3861在Windows平臺直接編譯體驗
DevEco Device Tool迎來了2.1 Beta1,其中的亮點之一是:支持Hi3861開發(fā)板的源碼在Windows平臺編譯。帶著濃厚的興趣,第一時間做了一次體驗。首先在官網下
發(fā)表于 04-18 09:59
利用小熊派獲取MPU6050六軸原始數據的過程
摘要:使用小熊派開發(fā)板,通過硬件IIC與MPU6050六軸傳感器模塊通信,完成相應寄存器配置,成功獲取陀螺儀、加速度計數據。本問主要講述使用小熊派
發(fā)表于 02-10 07:00
STM32 MPU6050模塊數據獲取
下載,在公眾號:小白學移動機器人,發(fā)送:MPU6050,即可獲得。2.4.1 解決的問題DMP庫的移植(文件已被更改過,更好的移植)MPU6050數據的
發(fā)表于 02-10 06:01
Hi3861潤和開發(fā)板+小熊派,智能家居項目
+華為云IoTDA+Android APP......Haohanyh-HAMOS-ProjectX是我們的一個LiGHTs計劃中的部分,目的就是開源我們在hi3861上與物聯(lián)網(智能家居)上做的探索
發(fā)表于 04-30 00:37
MPU6050原始數據處理
我用MPU6050接到小熊派開發(fā)版上讀取到加速度原始數據,按照網上說的公式轉換成加速度,加速度基本上都是在0附近,要大力快速晃動MPU6050
發(fā)表于 05-17 19:28
輕量系統(tǒng):小熊派BearPi-HM Nano(HI3861)
開發(fā)板名稱(芯片型號)
小熊派BearPi-HM Nano(HI3861)
芯片架構
CPU頻率
介紹(字數請控制在200字以內)
小熊派BearPi-HM Nano外型上延續(xù)了三
發(fā)表于 10-19 11:10
MPU6050簡介
MPU6050簡介什么是MPU6050MPU6050的特點MPU6050框圖MPU6050初始化MPU6050—DMP使用介紹
發(fā)表于 12-06 11:51
?78次下載
STM32 MPU6050數據獲取、數據處理
下載,在公眾號:小白學移動機器人,發(fā)送:MPU6050,即可獲得。2.4.1 解決的問題DMP庫的移植(文件已被更改過,更好的移植)MPU6050數據的
發(fā)表于 12-06 12:06
?36次下載
如何利用小熊派獲取MPU6050六軸原始數據
摘要:使用小熊派開發(fā)板,通過硬件IIC與MPU6050六軸傳感器模塊通信,完成相應寄存器配置,成功獲取陀螺儀、加速度計數據。本問主要講述使用小熊派
發(fā)表于 12-06 14:21
?19次下載
K013 基于51/STM32 MPU6050測試 OLED0.96顯示原始數據
. 接線六.代碼說明1. MPU6050引腳配置2. MPU6050模塊寫數據與命令函數3. MPU6050模塊初始化函數4. MPU6050
發(fā)表于 12-06 16:06
?29次下載
android 獲取gpio電平值_STM32 MPU6050數據獲取(IIC + DMP)
下載,在公眾號:小白學移動機器人,發(fā)送:MPU6050,即可獲得。2.4.1 解決的問題DMP庫的移植(文件已被更改過,更好的移植)MPU6050數據的
發(fā)表于 12-06 17:06
?17次下載

小熊派Hi3861獲取mpu6050數據在oled屏幕中顯示
評論