STM32使用串口中断接收HWT101的数据
因研究生阶段项目需求,需要采用HWT101给单片机提供角度信息。
HWT101是维特智能公司下的一款角度传感器,它可以通过计算角速度测量绕Z轴旋转的水平方向的偏航角,具有高精度、几乎无漂移、不受磁场干扰的特点。外观展示如下,可以通过IIC或者USART接收角度信息。其外观如下L:
本文通过串口中断的方式来接收角度信息。首先,HWT101不需要外部提供激励,只要给提供3.3V到5V的电压就能一直发送数据,其发送角度信息格式如下:
而我们这里只用到了它的角度信息,故通过串口中断接收信息,并按照其数据格式将角度解析出来即可。首先,对串口2的中断进行配置的代码如下:
void USART2_IRQHandler(void)
{if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET){CopeSerial2Data((unsigned char)USART2->DR);//接收数据USART_ClearITPendingBit(USART2, USART_IT_RXNE);}USART_ClearITPendingBit(USART2,USART_IT_ORE);
}
然后按照数据格式对数据进行处理:
void CopeSerial2Data(unsigned char ucData)
{static unsigned char ucRxBuffer[250];static unsigned char ucRxCnt = 0; ucRxBuffer[ucRxCnt++]=ucData; if (ucRxBuffer[0]!=0x55) //校验数据头{ucRxCnt=0;return;}if (ucRxCnt<11) {return;}//判断一帧数据是否接收完成else{switch(ucRxBuffer[1]){case 0x53: memcpy(&stcAngle,&ucRxBuffer[2],8);break;//判断是否为角度的数据}ucRxCnt=0;}
}
然后在主函数中将其通过串口1输出即可。
printf("Angle:%.3f %.3f %.3f\r\n",(float)stcAngle.Angle[0]/32768*180,(float)stcAngle.Angle[1]/32768*180,(float)stcAngle.Angle[2]/32768*180);
//按照说明将其转化为角度输出
下面是完成的代码链接,有需要的可以自取。
(56条消息) HWT101-STM32F407角度接收-嵌入式文档类资源-CSDN文库https://download.csdn.net/download/weixin_45304085/82931590
STM32使用串口中断接收HWT101的数据相关推荐
- android 串口一直打开_STM32之串口DMA接收不定长数据
STM32之串口DMA接收不定长数据 引言 在使用stm32或者其他单片机的时候,会经常使用到串口通讯,那么如何有效地接收数据呢?假如这段数据是不定长的有如何高效接收呢? 同学A:数据来了就会进入串口 ...
- STM32单片机串口空闲中断接收不定长数据
在使用单片机的串口通信功能时,常用的接收数据方法是通过固定的字节数来判断一帧数是否发送完成,或者是通过固定的结束标志位来表示一帧数据发送完成.但是有时候会遇到发送的数据长度不固定,也没有固定的结束标志 ...
- stm32串口空闲中断接收不定长数据
串口空闲中断接收不定长数据 空闲中断是接受数据后出现一个byte的高电平(空闲)状态,就会触发空闲中断.并不是空闲就会一直中断,准确的说应该是上升沿(停止位)后一个byte,如果一直是低电平是不会触发 ...
- STM32 HAL库 串口DMA(收发)和STM32串口中断接收(接收时间管理机制)+ESP8266 wifi模组通信问题
一.HAL库 串口 DMA+ESP8266模组通信问题 用STM32 HAL库串口的DMA发送和空闲中断接收处理数据,单片机发送AT指令给ESP8266 wifi模组问题:单片机连续几次给wifi模组 ...
- STM32 利用空闲中断接收数据
STM32 利用串口空闲中断接收不定长数据 利用cubeMX打开DMA串口接收中断 利用CubeMX打开串口中断 HAL_NVIC_SetPriority(USART2_IRQn, 0, 0); HA ...
- STM32串口中断接收实验
STM32串口中断接收实验的详细说明 准备 代码实现 总结 准备 材料:STM32F407ZGT6最小系统板,串口1通过跳线帽连接到了CH340上. 需求:从电脑向板子的串口1发送一个字符串(以回车和 ...
- STM32串口中断接收HAL库超详解析
之前一直用的固件库跑c8t6和zet6,现在有幸接触到stm32H743用到HAL库,学习嘛都是踩坑,csdn,然后...理解底层库的代码 本人有幸遇到了H7的串口中断接收只进去一次的Bug,于是马上 ...
- STM32 HAL库 串口DMA接收不定长数据
STM32 HAL库 串口DMA接收不定长数据 整体思路:我是用的CUBEMX软件生成的工程,使能了两个串口,串口2用来接收不定长的数据,串口1用来发送串口2接收到的数据:串口2我找了一个UBLOX卫 ...
- STM32通过串口如何接收服务器发来的数据
STM32通过串口如何接收服务器发来的数据代码如下: //在stm32f10x_it.c中的代码 void USART1_IRQHandler(void) { u8 GetData;if(USART_ ...
最新文章
- java 重载 参数子类_java - Java中带有子类参数的函数重载 - 堆栈内存溢出
- CentOS-6.4-i386硬盘安装
- json pandas 内存溢出_python-将多个JSON记录读取到Pandas数据框中
- 详解css样式处理的优先级
- 算法训练营08-分治和回溯
- [蓝桥杯][算法提高VIP]贪吃的大嘴(多重背包)
- 部署用于生产的Exceptionlees(一个强大易用的日志收集服务)
- Java知多少(50)Java throws子句
- ttc文件linux安装,centos系统安装中文字体几种方法
- java基础应用_Java基础(应用篇)
- SpringBoot + Vue 开发前后端分离的旅游管理系统
- 旅游B2B2C系统解决方案
- php 公众号调起小程序,微信公众号怎么跳转到小程序 微信公众号跳转到小程序方法介绍...
- 计算机f2锁定用户,台式电脑键盘被锁住按什么键恢复 点锁定直接锁定计算机
- 模拟飞机票订票系统设计心得
- jar包扫描工具: gamma
- 绿幕换背景、绿幕视频实时换背景
- 07 【动词的形式】verb structure,动词的位置,动词的使用,及物动词和不及物动词,使役动词,感官动词,
- PyCharm采用Docker镜像直接进行Linux环境项目开发
- 【AD封装】2.54间距排针排母插件贴片(带3D)