K_A14_001 基于STM32等单片机驱动MPU6050模块 串口与OLED0.96双显示

  • 一、资源说明
  • 二、基本参数
    • 参数
    • 引脚说明
  • 三、驱动说明
    • 时序
    • 对应程序:
  • 四、部分代码说明
    • 1、接线引脚定义
      • 1.1、STC89C52RC+MPU6050模块
      • 1.2、STM32F103C8T6+MPU6050模块
  • 五、基础知识学习与相关资料下载
  • 六、视频效果展示与程序资料获取
  • 七、注意事项
  • 八、接线说明
    • STC89C52RC
    • STM32F103C8T6

一、资源说明

单片机型号 测试条件 模块名称 代码功能
STC89C52RC 晶振11.0592M MPU6050模块 STC89C52RC驱动MPU6050模块串口与OLED0.96双显示
STM32F103C8T6 晶振8M/系统时钟72M MPU6050模块 STM32F103C8T6驱动MPU6050模块串口与OLED0.96双显示

其他资料目录 直戳跳转

二、基本参数

参数

使用芯片:MPU6050芯片
供电电压:3.3-5V供电
通信方式:标准IIC通信 芯片内置16bit AD转换器
陀螺仪范围:±250 500 1000 2000°/s
加速度范围:±2 ±4 ±8 ±16

引脚说明

MPU6050模块 引脚说明
VCC 正极 3.3/5V供电
GND 负极 接GND
SCL IIC时钟线
SDA IIC数据线
INT 中断输出
AD0 地址选择

三、驱动说明

时序



对应程序:

以51为例


//**************************************
//I2C起始信号
//**************************************
void I2C_Start()
{SDA = 1;                    //拉高数据线SCL = 1;                    //拉高时钟线Delay5us();                 //延时SDA = 0;                    //产生下降沿Delay5us();                 //延时SCL = 0;                    //拉低时钟线
}
//**************************************
//I2C停止信号
//**************************************
void I2C_Stop()
{SDA = 0;                    //拉低数据线SCL = 1;                    //拉高时钟线Delay5us();                 //延时SDA = 1;                    //产生上升沿Delay5us();                 //延时
}
//**************************************
//I2C发送应答信号
//入口参数:ack (0:ACK 1:NAK)
//**************************************
void I2C_SendACK(bit ack)
{SDA = ack;                  //写应答信号SCL = 1;                    //拉高时钟线Delay5us();                 //延时SCL = 0;                    //拉低时钟线Delay5us();                 //延时
}
//**************************************
//I2C接收应答信号
//**************************************
bit I2C_RecvACK()
{SCL = 1;                    //拉高时钟线Delay5us();                 //延时CY = SDA;                   //读应答信号SCL = 0;                    //拉低时钟线Delay5us();                 //延时return CY;
}
//**************************************
//向I2C总线发送一个字节数据
//**************************************
void I2C_SendByte(unsigned char dat)
{unsigned char i;for (i=0; i<8; i++)         //8位计数器{dat <<= 1;              //移出数据的最高位SDA = CY;               //送数据口SCL = 1;                //拉高时钟线Delay5us();             //延时SCL = 0;                //拉低时钟线Delay5us();             //延时}I2C_RecvACK();
}
//**************************************
//从I2C总线接收一个字节数据
//**************************************
unsigned char I2C_RecvByte()
{unsigned char i;unsigned char dat = 0;SDA = 1;                    //使能内部上拉,准备读取数据,for (i=0; i<8; i++)         //8位计数器{dat <<= 1;SCL = 1;                //拉高时钟线Delay5us();             //延时dat |= SDA;             //读数据               SCL = 0;                //拉低时钟线Delay5us();             //延时}return dat;
}
//**************************************
//向I2C设备写入一个字节数据
//**************************************
void Single_WriteI2C(unsigned char REG_Address,unsigned char REG_data)
{I2C_Start();                  //起始信号I2C_SendByte(SlaveAddress);   //发送设备地址+写信号I2C_SendByte(REG_Address);    //内部寄存器地址,I2C_SendByte(REG_data);       //内部寄存器数据,I2C_Stop();                   //发送停止信号
}
//**************************************
//从I2C设备读取一个字节数据
//**************************************
unsigned char Single_ReadI2C(unsigned char REG_Address)
{unsigned char REG_data;I2C_Start();                   //起始信号I2C_SendByte(SlaveAddress);    //发送设备地址+写信号I2C_SendByte(REG_Address);     //发送存储单元地址,从0开始  I2C_Start();                   //起始信号I2C_SendByte(SlaveAddress+1);  //发送设备地址+读信号REG_data=I2C_RecvByte();       //读出寄存器数据I2C_SendACK(1);                //接收应答信号I2C_Stop();                    //停止信号return REG_data;
}

四、部分代码说明

1、接线引脚定义

需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改

1.1、STC89C52RC+MPU6050模块


//MPU6050模块引脚定义
sbit IIC_SDA = P1^0;      //数据线
sbit IIC_SCL = P1^1;      //时钟线//OLED0.96模块引脚定义
sbit SCL=P1^3; //串行时钟
sbit SDA=P1^2; //串行数据

1.2、STM32F103C8T6+MPU6050模块

//GPIOB
#define MPU_IIC_SCL     PBout(4) //SCL
#define MPU_IIC_SDA     PBout(3) //SDA
//OLED0.96模块引脚定义
#define OLED_SCLK_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_8)//SCL
#define OLED_SCLK_Set() GPIO_SetBits(GPIOB,GPIO_Pin_8)#define OLED_SDIN_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_9)//SDA
#define OLED_SDIN_Set() GPIO_SetBits(GPIOB,GPIO_Pin_9)

五、基础知识学习与相关资料下载

1、STC89C52RC程序下载 直戳跳转

2、STM32F103C8T6程序下载
(1)串口下载 直戳跳转
(2)ST-LINK下载 直戳跳转
(3)J-LINK下载 直戳跳转
(4)DAP-LINK下载 直戳跳转

3、OLED0.96程序说明 直戳跳转

4、串口助手下载与使用
(1)安信可调试助手使用 直戳跳转
(2) sscom33串口调试助手使用 直戳跳转
(3)STC-ISP串口调试助手使用 直戳跳转

六、视频效果展示与程序资料获取

视频连接 直戳跳转
  资料获取            ( 滑到最后添加群号看公告免费获取)

七、注意事项

1、VCC GND请勿接反,接反易烧
2、OLED显示异常时,排除接线接触不良

八、接线说明

STC89C52RC

/************************************************************************************
//  生成日期   : 2021-6-21
//  最近修改   : 2021-11-21
//  功能描述   : MPU6050模块测试程序
//  测试条件   : STC89C52RC   晶振11.0592
接线
MPU6050模块----------------------------STC89C52RC
VCC------------------------------------5V
GND------------------------------------GND
OLED_SCL-------------------------------P1^1
OLED_SDA-------------------------------P1^0OLED0.96(IIC) -------------------------STC89C52RC
VCC------------------------------------5V
GND------------------------------------GND
OLED_SCL-------------------------------P1^3
OLED_SDA-------------------------------P1^2
*************************************************************************************/

STM32F103C8T6

/************************************************************************************
//  生成日期   : 2021-6-21
//  最近修改   : 2021-11-21
//  功能描述   : MPU6050模块测试程序
//  测试条件   : STM32F103C8T6   晶振11.0592  系统时钟72M
接线
MPU6050--------------------------------STM32F103C8T6
VCC-- ---------------------------------3.3V/5V
GND- ----------------------------------GND
SCL- ----------------------------------PB_4 //SCL
SDA- ----------------------------------PB_3 //SDA   OLED0.96
VCC-- ---------------------------------5V
GND- ----------------------------------GND
SCL- ----------------------------------PB_8 //SCL
SDA- ----------------------------------PB_9 //SDA
*************************************************************************************/

K_A14_001 基于STM32等单片机驱动MPU6050模块 串口与OLED0.96双显示相关推荐

  1. K_A12_022 基于STM32等单片机驱动VL53L0X模块 串口与OLED0.96双显示

    K_A12_022 基于STM32等单片机驱动VL53L0X模块 串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 UART对应程序: IIC对应程序: 四.部分 ...

  2. K_A16_001 基于STM32等单片机驱动HX711称重模块 串口与OLED0.96双显示

    K_A16_001 基于STM32等单片机驱动HX711称重模块 串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 对应程序: 四.部分代码说明 1.接线引脚定义 ...

  3. K_A14_003 基于STM32等单片机驱动APDS9960手势运动模块 串口与OLED0.96双显示

    K_A14_003 基于STM32等单片机驱动APDS9960手势运动模块 串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 时序 对应程序: 四.部分代码说明 ...

  4. K_A14_012基于STM32等单片机驱动GY-25倾斜度角度模块 串口与OLED0.96双显示

    K_A14_012基于STM32等单片机驱动GY-25倾斜度角度模块 串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 对应程序: 四.部分代码说明 1.接线引脚 ...

  5. K_A12_014 基于STM32等单片机驱动S12SD紫外线传感器模块 串口与OLED0.96双显示

    K_A12_014 基于STM32等单片机驱动S12SD紫外线传感器模块 串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 IIC地址/采集通道选择/时序 对应程 ...

  6. K_A12_004 基于STM32等单片机采集人体红外感应(HC-SR501)模块串口与OLED0.96双显示

    K_A12_004 基于STM32等单片机采集人体红外感应(HC-SR501)模块串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 模块工作原理: 对应程序: 四 ...

  7. K_A32_002 基于STM32等单片机驱动红外接收模块 串口+OLED0.96显示

    K_A32_002 基于STM32等单片机驱动红外接收模块 串口+OLED0.96显示 所有资源导航 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 时序: 对应程序: 四.部分代码说明 1 ...

  8. K_A13_001 基于STM32驱动霍尔开关传感器 串口与OLED0.96双显示

    K_A13_001 基于STM32驱动霍尔开关传感器 串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 对应程序: 四.部分代码说明 1.接线引脚定义 STM32 ...

  9. K_A08_004 基于 STM32等单片机驱动MX1919模块按键控制直流电机正反转加减速启停

    目录 一.资源说明 二.基本参数 1.参数 2.引脚说明 三.驱动说明 1.MX1919模块驱动时序 2.对应程序: 3.PWM信号 四.部分代码说明 接线说明 1.STC89C52RC+MX1919 ...

最新文章

  1. matlab两个多项式相除,C++和MATLAB混合编程求解多项式系数(矩阵相除)
  2. Winbond W25QXX SPI Flash使用笔记
  3. 服务器里的文件怎么实时更新,简单几步,利用Serverless,让COS中文件变更自动刷新CDN...
  4. ITK:关闭二进制图像
  5. 计算机专用英语词汇发音,计算机专用的英语词汇
  6. 猜数大小编程c语言_猜数正确编程
  7. mybatis一对多关联查询_Mybatis 一对一、一对多的关联查询 ?
  8. OSI参考模型与排错
  9. 不删除文字聊天的微信清理工具,快速释放空间,Python 编写,附源码
  10. 完全支持双层PDF 开源的PDF分离与合并软件 C 版本 转自codeproject
  11. FPGA编程中常用的经典方法及技巧(图像处理-映射技术)
  12. Word365英文版,文字垂直居中
  13. 某商店规定,某商品一次购买5件以上(包含5件)打九折,一次购买10件以上(包含10件)打八折,请根据单价和数量球总价
  14. 业务流程图怎么画?一篇文章看懂
  15. 腾讯应用宝正式开启 比赛进行到第手游渠道
  16. matplotlib 绘制图中图
  17. efm32芯片电压_【经验】基于EFM32G232芯片 ADC采样毛刺问题分析以及解决方案
  18. APP上架各大应用市场教程:所需材料与注意事项
  19. linux 批量 添加后缀名,Linux下批量修改后缀名(示例代码)
  20. python-操作列表

热门文章

  1. c++/c中的##连接符的使用
  2. mysql报警级别_MySQL 5.7定义日志级别新参数(log_error_verbosity)
  3. EventBus 原理解析
  4. FPGA和CY7C68013A的连接以及控制程序(1)
  5. IF:13+ Nomogram预测免疫检查点抑制剂治疗MSI-H型转移性结直肠癌患者的预后
  6. PS在照片中添加文字并做适当模糊处理
  7. Windows Phone简易绘画板(续)
  8. 安卓期末复习——题库(一)
  9. 每个苹果0.8元,第一天买2个,从第二天起,每天苹果的个数是前天的二倍,直至购买的苹果 *的个数不超过100的最大值为止,编写程序求每天平均花多少钱
  10. 解决AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using local