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温度值的读取与转换及串口通信,请指导相关推荐

  1. 串口 能 按位传输吗_、 迪文串口屏TTL与主控板RS232电平信号转换方案

    迪文串口屏TTL与主控板RS232电平信号转换方案 一.TTL和RS232简述 串口.COM口是指的物理接口形式(硬件),按位(bit)发送和接收字节.而TTL.RS-232是指的电平标准(电信号). ...

  2. rs232接口_、 迪文串口屏TTL与主控板RS232电平信号转换方案

    迪文串口屏TTL与主控板RS232电平信号转换方案 一.TTL和RS232简述 串口.COM口是指的物理接口形式(硬件),按位(bit)发送和接收字节.而TTL.RS-232是指的电平标准(电信号). ...

  3. STM32与中显串口屏的通信

    STM32与中显串口屏的通信 本文将简要介绍STM32单片机和武汉中显串口屏之间的通信实现过程.不过使用大彩.迪文这些公司的串口屏的同学也能参考一下,它们的通信协议好像一样. 注意:我代码用的ardu ...

  4. 迪文DWIN串口屏的使用经验分享

    迪文的串口屏,性价比高,质量稳定可靠,屏的种类多,消费类,工业类,医疗.军工.特殊行业等苛刻应用类,各个尺寸均有设计.所以基本能用得上,我分享一下各种屏的使用经验,希望能对大家有帮助. 浅谈迪文屏的发 ...

  5. 迪文DWIN串口屏的使用经验分享(最新添加了T5L新产品体验)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_42846972/arti ...

  6. 串口屏自制电脑机箱监控副屏-HF035

    前言 如果程序员配电脑要干点什么酷酷的事情的话,那就自己DIY一个机箱监控副屏吧.监控副屏在某宝最便宜也要上百块,本文介绍了怎么使用成本几十块的串口屏模块从0开始完成一个酷炫的机箱监控副屏.主要是软件 ...

  7. 大彩串口屏与STM32G070CBT6通讯调试

    大彩串口屏与STM32G070CBT6通讯调试 1 大彩串口屏 1.1 指令格式和指令集 1.2 硬件连接与程序下载 2 串口屏例程移植到STM32G070CBT6 2.1 STM32CubeMX生成 ...

  8. 合泰HT32--淘晶驰TJC--T0串口屏学习笔记(二)

    前言 经过上一次的串口屏学习,实现了单个页面的控件操作显示,但依旧还存在着许多需要解决的问题和优化的地方. 这次呢,主要实现串口屏多页面显示,及对应UI组件的控制. 上一篇串口屏链接:合泰HT32 & ...

  9. USART HMI智能串口屏与单片机双向通讯

    目录 ·HMI串口屏介绍 ·HMI串口屏开发实操 ·准备 ·界面认识 ·写命令 ·下载 ·HMI串口屏与单片机(stm32)双向通信 [ 功能实现: STM32控制串口屏对应的数值.文本完成相应变化 ...

最新文章

  1. 从语言学到深度学习NLP,一文概述自然语言处理
  2. android下拉会谈效果,Android实现下拉展示条目效果
  3. 桌面图标设计里的计算机是灰色的,小技巧教您如何将Windows 10上的桌面图标设置中的回收站为灰色!...
  4. 拒绝双写:巧用Lindorm数据订阅
  5. 使用拓扑数据分析理解卷积神经网络模型的工作过程
  6. 快速运行python虚拟环境_快速入门Python 最新最流行的pipenv虚拟环境
  7. HanLP的自定义词典使用方式与注意事项介绍
  8. gensim流式训练word2vec模型,不需要一次性加载完整数据集
  9. 使用innotop监测mysql
  10. a超链接之返回顶部的两种实现方法
  11. XCode 4.0 iOS SDK 4.3 iPhone证书破解 完全教程
  12. sqlserver的文件导入到mysql_SQLServer数据导入到MySQL方法介绍
  13. CCNA 视频教程下载 -chinalab版
  14. flutter插件出现英文
  15. 以太网口差分电平_以太网差分信号线在两层PCB板上的布线方法
  16. sql2000 挂起 注册表
  17. 计算机里不显示u盘盘符,U盘不显示盘符怎么办 U盘没了盘符解决方法【详解】...
  18. 记录matlab符号方程符号解求法
  19. 视频转gif(源码)
  20. java 横版游戏开发_用MyEclipse的Java Project开发仿DNF横版格斗游戏

热门文章

  1. JAVA中类的访问修饰符的作用范围
  2. 【转载】 regsvr32 注册dll
  3. 获取网站Alexa排名数值的方法
  4. 企业局域网离不开交换机/路由器/防火墙—Vecloud
  5. 服务器架构有哪些方式?—Vecloud微云
  6. cs231n 学习笔记(5)——神经网络part1:建立神经网络架构
  7. Oracle集合数据类型的比较
  8. 使用IDEA创建maven父子工程项目
  9. 通过crontab调度java -jar任务提示nohup: failed to run command `java': No such file or directory...
  10. Laya 位图字体制作(失败...)