串口屏与6050_MPU6050温度值的读取与转换及串口通信,请指导
MPU6050温度值的读取与转换及串口通信,请指导
[复制链接]
想读取6050的温度,并在上位机PC上的串口助手显示,可是串口上显示的全是乱码方块,代码如下:
#include
#include
typedef unsigned char u8;
typedef unsigned int u16;
//****************************************
// 定义MPU6050内部地址
//****************************************
#define SMERT_DIV 0x19 //25.采样频率分频器.采样频率=陀螺仪输出频率(DLPF_CFG)/( 1+SMPLRT_DIV )
#define CONFIG 0X1A //26.配置
#define GYRO_CONFIG 0x1b //27.陀螺仪配置
#define ACCEL_CONFIG 0x1c //28.加速计配置
#define ACCEL_XOUT_H 0x3b //59.加速度计测量值X轴的高8位
#define ACCEL_XOUT_L 0x3C //60.加速度计测量值X轴的低8位
#define ACCEL_YOUT_H 0x3D //61.加速度计测量值Y轴的高8位
#define ACCEL_YOUT_L 0x3E //62.加速度计测量值Y轴的低8位
#define ACCEL_ZOUT_H 0x3F //63.加速度计测量值Z轴的高8位
#define ACCEL_ZOUT_L 0x40 //64.加速度计测量值Z轴的低8位
#define TEMP_OUT_H 0x41 //65.温度测量值的高8位
#define TEMP_OUT_L 0x42 //66.温度测量值的低8位
#define GYRO_XOUT_H 0x43 //67.陀螺仪测量值X轴的高8位
#define GYRO_XOUT_L 0x44 //68.陀螺仪测量值X轴的低8位
#define GYRO_YOUT_H 0x45 //69.陀螺仪测量值Y轴的高8位
#define GYRO_YOUT_L 0x46 //70.陀螺仪测量值Y轴的低8位
#define GYRO_ZOUT_H 0x47 //71.陀螺仪测量值Z轴的高8位
#define GYRO_ZOUT_L 0x48 //72.陀螺仪测量值Z轴的低8位
#define PWR_MGMT_1 0x6b //107.电源控制1
#define WHU_AM_I 0x75 //117.MPU-60X0的6位I2C地址寄存器
#define SlaveAddress 0xd0 //IIC写入时的地址字节数据,+1为读取
//*************************************************************************************************
//************************************延时*********************************************************
//*************************************************************************************************
void delay(u16 k)
{
unsigned int i,j;
for(i=0;i{
for(j=0;j<121;j++);
}
}
//初始化MPU6050
void initmpu6050()
{
I2C_mpu6050Write(PWR_MGMT_1,0x00); //电源管理,典型值:0x00(正常启用)
I2C_mpu6050Write(SMERT_DIV,0x07); //陀螺仪采样率,典型值:0x07(125Hz)
I2C_mpu6050Write(CONFIG,0x06); //低通滤波频率,典型值:0x06(5Hz)
I2C_mpu6050Write(GYRO_CONFIG,0x18); //设置陀螺仪的满量程范围为:±2000°/s
I2C_mpu6050Write(ACCEL_CONFIG,0x00);//设置加速度计的满量程范围为:±2g
}
//******************************************************************************************************
//串口初始化
//*******************************************************************************************************
void init_uart()
{
TMOD=0x20;
TH1=0xf3; //实现波特率4800(系统时钟12MHZ)
TL1=0xf3;
PCON=0x80;
SCON=0x50;
PS=1; //串口中断设为高优先级别
TR0=1; //启动定时器
TR1=1;
ET0=1; //打开定时器0中断
ES=1;
EA=1;
}
//数据融合及运算
float ronghe(u8 addr)
{
u8 H,L;
short tem;
H=I2C_mpu6050Read(addr);
L=I2C_mpu6050Read(addr+1);
tem=(short) ((H<<8)|L);
return (36.53+(tem/340));
}
//*************************************************************************************************
//串口发送函数
//*************************************************************************************************
void SeriPushSend(u8 send_data)
{
u8 det,det1,det2;
det=ronghe(send_data);
det1=det/10;
SBUF=det1;
while(!TI);TI=0;
det2=det%10;
SBUF=det2;
while(!TI);TI=0;
}
//主程序
void main()
{
delay(500);
init_uart();
initmpu6050();
delay(150);
while(1)
{
SeriPushSend(TEMP_OUT_H);
delay(200);
}
}
理想的结果是,得到的结果为,有符号型的浮点数.例:-32.13度.
程序到段,应该都是没问题的,我觉得就是转换这里的问题(看了很多资料,也没想明白,怎么转换),请师傅们指导...
推荐些资料也好,谢谢
串口屏与6050_MPU6050温度值的读取与转换及串口通信,请指导相关推荐
- 串口 能 按位传输吗_、 迪文串口屏TTL与主控板RS232电平信号转换方案
迪文串口屏TTL与主控板RS232电平信号转换方案 一.TTL和RS232简述 串口.COM口是指的物理接口形式(硬件),按位(bit)发送和接收字节.而TTL.RS-232是指的电平标准(电信号). ...
- rs232接口_、 迪文串口屏TTL与主控板RS232电平信号转换方案
迪文串口屏TTL与主控板RS232电平信号转换方案 一.TTL和RS232简述 串口.COM口是指的物理接口形式(硬件),按位(bit)发送和接收字节.而TTL.RS-232是指的电平标准(电信号). ...
- STM32与中显串口屏的通信
STM32与中显串口屏的通信 本文将简要介绍STM32单片机和武汉中显串口屏之间的通信实现过程.不过使用大彩.迪文这些公司的串口屏的同学也能参考一下,它们的通信协议好像一样. 注意:我代码用的ardu ...
- 迪文DWIN串口屏的使用经验分享
迪文的串口屏,性价比高,质量稳定可靠,屏的种类多,消费类,工业类,医疗.军工.特殊行业等苛刻应用类,各个尺寸均有设计.所以基本能用得上,我分享一下各种屏的使用经验,希望能对大家有帮助. 浅谈迪文屏的发 ...
- 迪文DWIN串口屏的使用经验分享(最新添加了T5L新产品体验)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_42846972/arti ...
- 串口屏自制电脑机箱监控副屏-HF035
前言 如果程序员配电脑要干点什么酷酷的事情的话,那就自己DIY一个机箱监控副屏吧.监控副屏在某宝最便宜也要上百块,本文介绍了怎么使用成本几十块的串口屏模块从0开始完成一个酷炫的机箱监控副屏.主要是软件 ...
- 大彩串口屏与STM32G070CBT6通讯调试
大彩串口屏与STM32G070CBT6通讯调试 1 大彩串口屏 1.1 指令格式和指令集 1.2 硬件连接与程序下载 2 串口屏例程移植到STM32G070CBT6 2.1 STM32CubeMX生成 ...
- 合泰HT32--淘晶驰TJC--T0串口屏学习笔记(二)
前言 经过上一次的串口屏学习,实现了单个页面的控件操作显示,但依旧还存在着许多需要解决的问题和优化的地方. 这次呢,主要实现串口屏多页面显示,及对应UI组件的控制. 上一篇串口屏链接:合泰HT32 & ...
- USART HMI智能串口屏与单片机双向通讯
目录 ·HMI串口屏介绍 ·HMI串口屏开发实操 ·准备 ·界面认识 ·写命令 ·下载 ·HMI串口屏与单片机(stm32)双向通信 [ 功能实现: STM32控制串口屏对应的数值.文本完成相应变化 ...
最新文章
- 从语言学到深度学习NLP,一文概述自然语言处理
- android下拉会谈效果,Android实现下拉展示条目效果
- 桌面图标设计里的计算机是灰色的,小技巧教您如何将Windows 10上的桌面图标设置中的回收站为灰色!...
- 拒绝双写:巧用Lindorm数据订阅
- 使用拓扑数据分析理解卷积神经网络模型的工作过程
- 快速运行python虚拟环境_快速入门Python 最新最流行的pipenv虚拟环境
- HanLP的自定义词典使用方式与注意事项介绍
- gensim流式训练word2vec模型,不需要一次性加载完整数据集
- 使用innotop监测mysql
- a超链接之返回顶部的两种实现方法
- XCode 4.0 iOS SDK 4.3 iPhone证书破解 完全教程
- sqlserver的文件导入到mysql_SQLServer数据导入到MySQL方法介绍
- CCNA 视频教程下载 -chinalab版
- flutter插件出现英文
- 以太网口差分电平_以太网差分信号线在两层PCB板上的布线方法
- sql2000 挂起 注册表
- 计算机里不显示u盘盘符,U盘不显示盘符怎么办 U盘没了盘符解决方法【详解】...
- 记录matlab符号方程符号解求法
- 视频转gif(源码)
- java 横版游戏开发_用MyEclipse的Java Project开发仿DNF横版格斗游戏
热门文章
- JAVA中类的访问修饰符的作用范围
- 【转载】 regsvr32 注册dll
- 获取网站Alexa排名数值的方法
- 企业局域网离不开交换机/路由器/防火墙—Vecloud
- 服务器架构有哪些方式?—Vecloud微云
- cs231n 学习笔记(5)——神经网络part1:建立神经网络架构
- Oracle集合数据类型的比较
- 使用IDEA创建maven父子工程项目
- 通过crontab调度java -jar任务提示nohup: failed to run command `java': No such file or directory...
- Laya 位图字体制作(失败...)