K_A14_001 基于STM32等单片机驱动MPU6050模块 串口与OLED0.96双显示
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双显示相关推荐
- K_A12_022 基于STM32等单片机驱动VL53L0X模块 串口与OLED0.96双显示
K_A12_022 基于STM32等单片机驱动VL53L0X模块 串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 UART对应程序: IIC对应程序: 四.部分 ...
- K_A16_001 基于STM32等单片机驱动HX711称重模块 串口与OLED0.96双显示
K_A16_001 基于STM32等单片机驱动HX711称重模块 串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 对应程序: 四.部分代码说明 1.接线引脚定义 ...
- K_A14_003 基于STM32等单片机驱动APDS9960手势运动模块 串口与OLED0.96双显示
K_A14_003 基于STM32等单片机驱动APDS9960手势运动模块 串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 时序 对应程序: 四.部分代码说明 ...
- K_A14_012基于STM32等单片机驱动GY-25倾斜度角度模块 串口与OLED0.96双显示
K_A14_012基于STM32等单片机驱动GY-25倾斜度角度模块 串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 对应程序: 四.部分代码说明 1.接线引脚 ...
- K_A12_014 基于STM32等单片机驱动S12SD紫外线传感器模块 串口与OLED0.96双显示
K_A12_014 基于STM32等单片机驱动S12SD紫外线传感器模块 串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 IIC地址/采集通道选择/时序 对应程 ...
- K_A12_004 基于STM32等单片机采集人体红外感应(HC-SR501)模块串口与OLED0.96双显示
K_A12_004 基于STM32等单片机采集人体红外感应(HC-SR501)模块串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 模块工作原理: 对应程序: 四 ...
- K_A32_002 基于STM32等单片机驱动红外接收模块 串口+OLED0.96显示
K_A32_002 基于STM32等单片机驱动红外接收模块 串口+OLED0.96显示 所有资源导航 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 时序: 对应程序: 四.部分代码说明 1 ...
- K_A13_001 基于STM32驱动霍尔开关传感器 串口与OLED0.96双显示
K_A13_001 基于STM32驱动霍尔开关传感器 串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 对应程序: 四.部分代码说明 1.接线引脚定义 STM32 ...
- K_A08_004 基于 STM32等单片机驱动MX1919模块按键控制直流电机正反转加减速启停
目录 一.资源说明 二.基本参数 1.参数 2.引脚说明 三.驱动说明 1.MX1919模块驱动时序 2.对应程序: 3.PWM信号 四.部分代码说明 接线说明 1.STC89C52RC+MX1919 ...
最新文章
- matlab两个多项式相除,C++和MATLAB混合编程求解多项式系数(矩阵相除)
- Winbond W25QXX SPI Flash使用笔记
- 服务器里的文件怎么实时更新,简单几步,利用Serverless,让COS中文件变更自动刷新CDN...
- ITK:关闭二进制图像
- 计算机专用英语词汇发音,计算机专用的英语词汇
- 猜数大小编程c语言_猜数正确编程
- mybatis一对多关联查询_Mybatis 一对一、一对多的关联查询 ?
- OSI参考模型与排错
- 不删除文字聊天的微信清理工具,快速释放空间,Python 编写,附源码
- 完全支持双层PDF 开源的PDF分离与合并软件 C 版本 转自codeproject
- FPGA编程中常用的经典方法及技巧(图像处理-映射技术)
- Word365英文版,文字垂直居中
- 某商店规定,某商品一次购买5件以上(包含5件)打九折,一次购买10件以上(包含10件)打八折,请根据单价和数量球总价
- 业务流程图怎么画?一篇文章看懂
- 腾讯应用宝正式开启 比赛进行到第手游渠道
- matplotlib 绘制图中图
- efm32芯片电压_【经验】基于EFM32G232芯片 ADC采样毛刺问题分析以及解决方案
- APP上架各大应用市场教程:所需材料与注意事项
- linux 批量 添加后缀名,Linux下批量修改后缀名(示例代码)
- python-操作列表
热门文章
- c++/c中的##连接符的使用
- mysql报警级别_MySQL 5.7定义日志级别新参数(log_error_verbosity)
- EventBus 原理解析
- FPGA和CY7C68013A的连接以及控制程序(1)
- IF:13+ Nomogram预测免疫检查点抑制剂治疗MSI-H型转移性结直肠癌患者的预后
- PS在照片中添加文字并做适当模糊处理
- Windows Phone简易绘画板(续)
- 安卓期末复习——题库(一)
- 每个苹果0.8元,第一天买2个,从第二天起,每天苹果的个数是前天的二倍,直至购买的苹果 *的个数不超过100的最大值为止,编写程序求每天平均花多少钱
- 解决AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using local