找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3040|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

nrf51822的MPU6050驅(qū)動(dòng)程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:377992 發(fā)表于 2018-12-11 10:13 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
nrf51822源程序如下:
  1. /****************************************Copyright (c)****************************************************
  2. **                                       
  3. **                                 
  4. **
  5. **--------------File Info---------------------------------------------------------------------------------
  6. ** File name:                             main.c
  7. ** Last modified Date:      
  8. ** Last Version:                  
  9. ** Descriptions:                   使用的SDK版本-SDK_12.0.0
  10. **                               
  11. **--------------------------------------------------------------------------------------------------------
  12. ** Created by:                        青風(fēng)電子
  13. ** Descriptions:                MPU6050原始數(shù)據(jù)讀取實(shí)驗(yàn)
  14. **--------------------------------------------------------------------------------------------------------*/
  15. #include <stdbool.h>
  16. #include <stdint.h>
  17. #include <stdio.h>
  18. #include "app_uart.h"
  19. #include "app_error.h"
  20. #include "nrf_delay.h"
  21. #include "nrf_gpio.h"
  22. #include "boards.h"
  23. #include "mpu6050.h"
  24. #include "twi_master.h"


  25. /* 開(kāi)發(fā)板中MPU6050模塊和串口占用的nRF52832管腳資源
  26. P0.06:UART_TXD   :串口發(fā)送
  27. P0.08:UART_RXD   :串口接收
  28. P0.07:UART_CTS   : 未使用流控
  29. P0.05:UART_RTS   : 未使用流控

  30. 串口需要短接對(duì)應(yīng)的跳線帽

  31. P0.22:IIC時(shí)鐘
  32. P0.23:IIC數(shù)據(jù)
  33. */

  34. #define UART_TX_BUF_SIZE 256                         /**< UART TX buffer size. */
  35. #define UART_RX_BUF_SIZE 1                           /**< UART RX buffer size. */


  36. void uart_error_handle(app_uart_evt_t * p_event)
  37. {
  38.     if (p_event->evt_type == APP_UART_COMMUNICATION_ERROR)
  39.     {
  40.         APP_ERROR_HANDLER(p_event->data.error_communication);
  41.     }
  42.     else if (p_event->evt_type == APP_UART_FIFO_ERROR)
  43.     {
  44.         APP_ERROR_HANDLER(p_event->data.error_code);
  45.     }
  46. }

  47. /*******************************************************************************
  48. * 描  述 : 串口初始化。波特率115200bps,流控關(guān)閉
  49. * 參  數(shù) : 無(wú)
  50. * 返回值 : 無(wú)
  51. ******************************************************************************/
  52. void uart_config(void)
  53. {
  54.     uint32_t err_code;
  55.        
  56.     const app_uart_comm_params_t comm_params =
  57.     {
  58.           RX_PIN_NUMBER,
  59.           TX_PIN_NUMBER,
  60.           RTS_PIN_NUMBER,
  61.           CTS_PIN_NUMBER,
  62.           APP_UART_FLOW_CONTROL_DISABLED,    //關(guān)閉流控
  63.           false,
  64.           UART_BAUDRATE_BAUDRATE_Baud115200  //波特率設(shè)置為115200bps
  65.     };

  66.     APP_UART_FIFO_INIT(&comm_params,
  67.                          UART_RX_BUF_SIZE,
  68.                          UART_TX_BUF_SIZE,
  69.                          uart_error_handle,
  70.                          APP_IRQ_PRIORITY_LOW,
  71.                          err_code);

  72.     APP_ERROR_CHECK(err_code);
  73. }
  74. /**********************************************************************************************
  75. * 描  述 : main函數(shù)
  76. * 入  參 : 無(wú)
  77. * 返回值 : 無(wú)
  78. ***********************************************************************************************/
  79. int main(void)
  80. {
  81.     int16_t AccValue[3],GyroValue[3];
  82.           uint8_t id;
  83.        
  84.           nrf_gpio_cfg_output(LED_1);//配置管腳P0.17為輸出,驅(qū)動(dòng)指示燈D1
  85.     nrf_gpio_pin_set(LED_1);   //設(shè)置指示燈D1初始狀態(tài)為熄滅
  86.        
  87.     uart_config();  //配置串口,禁止流控,波特率:115200       
  88.                
  89.                 twi_master_init();
  90.        
  91.           nrf_delay_ms(2000);
  92.        
  93.           while(mpu6050_init(0x68) == false)
  94.                 {
  95.                                 printf("mpu6050 init fail\r\n");
  96.                                 nrf_delay_ms(500);
  97.                 }

  98.                 printf("mpu6050 init ok\r\n");
  99.     mpu6050_register_read(0x75U, &id, 1);
  100.                 printf("mpu6050 id is %d \r\n",id);

  101.     while (true)
  102.     {
  103.                           MPU6050_ReadAcc( &AccValue[0], &AccValue[1] , &AccValue[2] );
  104.                     MPU6050_ReadGyro(&GyroValue[0] , &GyroValue[1] , &GyroValue[2] );
  105.                        
  106.                           printf("ACC:  %d        %d        %d        ",AccValue[0],AccValue[1],AccValue[2]);
  107.                     printf("GYRO: %d        %d        %d        \r\n",GyroValue[0],GyroValue[1],GyroValue[2]);
  108.                           nrf_delay_ms(500);
  109.     }
  110. }
  111. /********************************************END FILE*******************************************/
復(fù)制代碼

所有資料51hei提供下載:
mpu6050驅(qū)動(dòng).rar (602.6 KB, 下載次數(shù): 23)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:107741 發(fā)表于 2019-8-9 13:26 | 只看該作者
非常感謝
回復(fù)

使用道具 舉報(bào)

板凳
ID:107741 發(fā)表于 2019-8-9 13:26 | 只看該作者
非常感謝你的慷慨指導(dǎo)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表