找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7251|回复: 6
打印 上一主题 下一主题
收起左侧

dsp通过MPU6050测量加速度,角速度等值 dsp硬件I2C通信

[复制链接]
跳转到指定楼层
楼主
基于dsp硬件I2C通信,dsp通过MPU6050测量加速度,角速度等值!!!!!

全部源码下载:
I2C_MPU6050.rar (213.35 KB, 下载次数: 57)
  1. // TI File $Revision: /main/1 $
  2. // Checkin $Date: August 18, 2006   13:46:27 $
  3. //###########################################################################
  4. //
  5. // FILE:        DSP2833x_I2C.c
  6. //
  7. // TITLE:        DSP2833x SCI Initialization & Support Functions.
  8. //
  9. //###########################################################################
  10. // $TI Release: DSP2833x Header Files V1.01 $
  11. // $Release Date: September 26, 2007 $
  12. //###########################################################################

  13. #include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File
  14. #include "DSP2833x_Examples.h"   // DSP2833x Examples Include File

  15. //---------------------------------------------------------------------------
  16. // InitI2C:
  17. //---------------------------------------------------------------------------
  18. // This function initializes the I2C to a known state.
  19. //
  20. void InitI2C(void)
  21. {
  22.         // Initialize I2C-A:
  23.            I2caRegs.I2CMDR.all = 0x0000;        // Take I2C reset 复位I2C
  24.                                                                                    // Stop I2C when suspended
  25.            InitI2CGpio();  //初始化GPIO
  26.         //复位FIFO寄存器
  27.            I2caRegs.I2CFFTX.all = 0x0000;        // Disable FIFO mode and TXFIFO
  28.            I2caRegs.I2CFFRX.all = 0x0040;        // Disable RXFIFO, clear RXFFINT,
  29.         //根据晶振不同设置预定标寄存器的值
  30.            #if (CPU_FRQ_150MHZ)             // Default - For 150MHz SYSCLKOUT
  31.                 I2caRegs.I2CPSC.all = 14;   // Prescaler - need 7-12 Mhz on module clk (150/15 = 10MHz)
  32.            #endif
  33.            #if (CPU_FRQ_100MHZ)             // For 100 MHz SYSCLKOUT
  34.              I2caRegs.I2CPSC.all = 9;            // Prescaler - need 7-12 Mhz on module clk (100/10 = 10MHz)
  35.            #endif
  36.         //设定时钟值
  37. //           I2caRegs.I2CCLKL = 20;                        // NOTE: must be non zero
  38. //           I2caRegs.I2CCLKH =15;                        // NOTE: must be non zero
  39. //           I2caRegs.I2CIER.all = 0x24;                // Enable SCD & ARDY interrupts
  40. //           I2caRegs.I2CMDR.all = 0x0020;        // Take I2C out of reset 从复位状态恢复
  41. //                                                                        // Stop I2C when suspended
  42. //           I2caRegs.I2CFFTX.all = 0x6000;        // Enable FIFO mode and TXFIFO  允许写数据FIFO
  43. //           I2caRegs.I2CFFRX.all = 0x206E;        // Enable RXFIFO, clear RXFFINT,  允许读取FIFO
  44.              I2caRegs.I2CCLKL = 10;                        // NOTE: must be non zero
  45.               I2caRegs.I2CCLKH = 5;                        // NOTE: must be non zero
  46.               I2caRegs.I2CIER.all = 0x24;                // Enable SCD & ARDY interrupts

  47.               I2caRegs.I2CMDR.all = 0x0020;        // Take I2C out of reset
  48.                                                                                       // Stop I2C when suspended

  49.               I2caRegs.I2CFFTX.all = 0x6000;        // Enable FIFO mode and TXFIFO
  50.               I2caRegs.I2CFFRX.all = 0x2040;        // Enable RXFIFO, clear RXFFINT


  51. //           I2caRegs.I2CFFRX.bit.RXFFINTCLR =1;  //清除I2C FIFO中断标志位
  52. //     I2caRegs.I2CFFRX.bit.RXFFRST=0;   //复位I2C FIFO

  53.            //EDIS;
  54.            //return;
  55.         //tbd...
  56. }       

  57. //---------------------------------------------------------------------------
  58. // Example: InitI2CGpio:
  59. //---------------------------------------------------------------------------
  60. // This function initializes GPIO pins to function as I2C pins
  61. //
  62. // Each GPIO pin can be configured as a GPIO pin or up to 3 different
  63. // peripheral functional pins. By default all pins come up as GPIO
  64. // inputs after reset.  
  65. //
  66. // Caution:
  67. // Only one GPIO pin should be enabled for SDAA operation.
  68. // Only one GPIO pin shoudl be enabled for SCLA operation.
  69. // Comment out other unwanted lines.

  70. void InitI2CGpio(void)
  71. {

  72.    EALLOW;
  73. /* Enable internal pull-up for the selected pins */
  74. // Pull-ups can be enabled or disabled disabled by the user.  
  75. // This will enable the pullups for the specified pins.
  76. // Comment out other unwanted lines.

  77.         GpioCtrlRegs.GPBPUD.bit.GPIO32 = 0;    // Enable pull-up for GPIO32 (SDAA)
  78.         GpioCtrlRegs.GPBPUD.bit.GPIO33 = 0;           // Enable pull-up for GPIO33 (SCLA)

  79. /* Set qualification for selected pins to asynch only */
  80. // This will select asynch (no qualification) for the selected pins.
  81. // Comment out other unwanted lines.

  82.         GpioCtrlRegs.GPBQSEL1.bit.GPIO32 = 3;  // Asynch input GPIO32 (SDAA)
  83.     GpioCtrlRegs.GPBQSEL1.bit.GPIO33 = 3;  // Asynch input GPIO33 (SCLA)

  84. /* Configure SCI pins using GPIO regs*/
  85. // This specifies which of the possible GPIO pins will be I2C functional pins.
  86. // Comment out other unwanted lines.

  87.         GpioCtrlRegs.GPBMUX1.bit.GPIO32 = 1;   // Configure GPIO32 for SDAA operation
  88.         GpioCtrlRegs.GPBMUX1.bit.GPIO33 = 1;   // Configure GPIO33 for SCLA operation
  89.        
  90.     EDIS;
  91. }

  92.        
  93. //===========================================================================
  94. // End of file.
  95. //===========================================================================
复制代码


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

7#
ID:628703 发表于 2020-5-31 17:19 | 只看该作者
感谢分享,谢谢!
回复

使用道具 举报

6#
ID:481046 发表于 2019-10-11 19:43 | 只看该作者
谢谢分享!!
回复

使用道具 举报

5#
ID:202196 发表于 2019-4-10 21:33 | 只看该作者
感谢分享
回复

使用道具 举报

地板
ID:319911 发表于 2018-5-1 19:06 | 只看该作者
你好~请问要在哪个寄存器看陀螺仪MPU6050的输出讯号?我们的控制板也是28335?
回复

使用道具 举报

板凳
ID:154489 发表于 2016-12-13 20:23 | 只看该作者
楼主,进不了IIC中断是什么原因。
回复

使用道具 举报

沙发
ID:116063 发表于 2016-4-23 11:25 | 只看该作者
怎莫不给黑币????
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表