当前位置: 首页 > news >正文

长沙网站网站建设建设设计网站公司

长沙网站网站建设,建设设计网站公司,网站 流量 不够用,济南公司建站模板前言 本人玩车的时候要用到陀螺仪 MPU6050容易卡死,然后还很漂,还是太难用了 68块钱的陀螺仪在上位机上的效果挺满意,于是打算用串口用到自己的模型上 本文教大家如何编写串口程序,通过串口获取角度 大家把本文的原理学会后&…

前言

本人玩车的时候要用到陀螺仪

MPU6050容易卡死,然后还很漂,还是太难用了

68块钱的陀螺仪在上位机上的效果挺满意,于是打算用串口用到自己的模型上

本文教大家如何编写串口程序,通过串口获取角度

大家把本文的原理学会后,再去获取其他,比如角加速度,角速度都没问题了

 

官方参考文档

WT61C-TTL/232产品资料 (yuque.com)

 

在官方文档中找到那篇通信协议的文档

在这个页面中我们可以获取的信息有

帧头都是0x55

根据第二帧来决定后面输入进来的是什么数据

 

串口助手查看数据

可以看到模块会把所有数据都传出来

所以我们只需要根据两个头帧,以及后面需要的数据长度来定义接受长度,最后再转化即可

 

 

STM32cubemx配置

我打算用串口1中断的方式来接收

然后OLED在屏幕中显示

OLED如何导入HAL库看我上一期文章

 

定义参数

uint8_t buffer[1];
float xyz[3];

定义两个全局变量

xyz主要用来传输角度,用作全局变量,到时候要传到主函数

buffer[1]主要是用来串口接收一个字符

 

然后在main.c里面也定义成全局变量

extern float xyz[3];

 

 

开启串口中断接收

HAL_UART_Receive_IT(&huart1, (uint8_t *)buffer, 1); 

喜欢在初始化完后加,不加的话不会开启中断

因为加了之后是告诉程序

你要开始接受一个字符了,然后要把接受的存到buffer里面

 

串口中断回调函数编写(重点!)


void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) 
{static uint8_t i = 0;static int16_t buff[8]; if(huart->Instance == USART1){buff[i++] = buffer[0];if((i == 1) && (buff[0] != 0x55)){i = 0;}if((i == 2) && (buff[1] != 0x53)){i = 0;}if(i == 8){int16_t value_x = (buff[3] << 8) | buff[2];int16_t value_y = (buff[5] << 8) | buff[4];int16_t value_z = (buff[7] << 8) | buff[6];xyz[0] = (float)value_x / 32768* 180 ;xyz[1] = (float)value_y/ 32768* 180;xyz[2] = (float)value_z / 32768* 180;for(int j = 0; j < 8; j++){buff[j] = 0;}i = 0;}HAL_UART_Receive_IT(&huart1, (uint8_t *)buffer, 1);}
}

 

首先让第一个字符接收,接收完i就等于1了

判断buff[0]是不是接收到0x55头帧了

如果没有接收到那么i等于0从新开始接收

 

因为我们要获取的是角度,所以第二帧是0x53

第二帧是数据类型判断帧

如果不是0x53,也就代表后面的高八位和第八位都不是我们要的角度数据

所以就重置

 

然后我们确定接下来的数据无误后,分别获取后面的六位数据

根据这张表格

所以我们只需要获取到YawH后就可以计算了

 

16位数据是大小为65536,但是如果是有符号,那么就会/2,-32767到32768之间,然后除于32768再乘180度就可以获取角度了

 

获取完后重新归零数据

 

主函数显示

   sprintf(out,"%.1f  ",xyz[0]);OLED_ShowString(1, 1, out);sprintf(out,"%.1f   ",xyz[1]);OLED_ShowString(2, 1, out);sprintf(out,"%.1f    ",xyz[2]);OLED_ShowString(3, 1, out);HAL_Delay(200);

基本OLED显示了

 

效果展示        

0度到90度的变化

 

 

 

http://www.dtcms.com/a/416605.html

相关文章:

  • 企业网站设计的特点网站推广引流软件
  • 政务网站建设的方向工装装修
  • 网站服务器机房如何编辑微信小程序
  • 网站建设高端培训班江阴哪里有做网站的
  • 网站建设公司怎么开wordpress搜索页增强
  • 【代码讲解】Rerun 实时数据采集并显示 + 手柄控制 6 轴机械臂运动
  • 设计企业门户网站新手做网站流程
  • h5网站页面网页制作工具可分为
  • 微网站建设哪家便宜设计之家官网首页
  • 油猴,悬浮评论区窗口模版
  • 东莞网站建设求职棋牌软件开发定制软件
  • 做网站应该注意什么外贸推广服务公司
  • 网站建设机构培训wordpress高亮
  • 宣传工作网站建设作用网站备案名称的影响
  • 网站制作前需要进行规划设计wordpress主题修改教程
  • 微网站建设资讯wordpress 禁止升级
  • 内容网站模板电竞网站建设方案
  • dedecms 网站名称标签好的php网站
  • 湖南建设厅网站设计开发流程
  • 外贸网站虚拟主机昆明经济技术开发区官方门户网站
  • 风云格式工厂 6.8.0.apk:
  • 春节网站怎么做typecho还是WordPress
  • 公司建一个网站要多少钱wordpress源码解析
  • 没内容的网站怎么优化免费表白网站制作
  • 有用的网站地址无锡专业网站制作
  • 【ROS学习笔记】ROS1和ROS2对比
  • 郑州网站提升排名wordpress文章页面添加打赏
  • 江阴公司做网站wordpress 插件 手机
  • 海口网站建设方案报价百度产品优化排名软件
  • 怎么样建设一个电影网站视频下载免费行情的软件大全下载