JY901 NOTES TM4串口数据读取的示例分析
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家分享的是有关JY901 NOTES TM4串口数据读取的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、串口读取模块数据我在这里附上我于厂家提供的例
千家信息网最后更新 2026年11月01日JY901 NOTES TM4串口数据读取的示例分析
这篇文章给大家分享的是有关JY901 NOTES TM4串口数据读取的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
一、串口读取模块数据
我在这里附上我于厂家提供的例程基础上修改而来的串口数据读取函数(虽然很简单但是可以节省看到帖子的老哥的时间)。
首先TM4串口1初始化:
#define UART1Baud 115200void initUART1(){ ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART1); ROM_GPIOPinConfigure(GPIO_PB0_U1RX); ROM_GPIOPinConfigure(GPIO_PB1_U1TX); ROM_GPIOPinTypeUART(GPIO_PORTB_BASE, GPIO_PIN_0 | GPIO_PIN_1); ROM_UARTConfigSetExpClk(UART1_BASE, ROM_SysCtlClockGet(), UART1Baud,(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE)); ROM_IntEnable(INT_UART1); UARTFIFODisable(UART1_BASE); UARTIntRegister(UART1_BASE,UART1_Handler); ROM_UARTIntEnable(UART1_BASE, UART_INT_RX | UART_INT_RT); }然后按照手册的协议解读:
float roll=0,pitch=0,yaw=0; float accX=0,accY=0,accZ=0; float gyrX=0,gyrY=0,gyrZ=0; void JY901_GetOneByte(u8 data){ static u8 ucRxBuffer[12]; static u8 ucRxCnt = 0; ucRxBuffer[ucRxCnt++]=data; if(ucRxBuffer[0]!=0x55) { ucRxCnt=0; return; } if (ucRxCnt<11) {return;} else { switch(ucRxBuffer[1]) { case 0x51: accX=(float)((int16_t)(ucRxBuffer[3]<<8)|ucRxBuffer[2])/32768*16*9.8f; accY=(float)((int16_t)(ucRxBuffer[5]<<8)|ucRxBuffer[4])/32768*16*9.8f; accZ=(float)((int16_t)(ucRxBuffer[7]<<8)|ucRxBuffer[6])/32768*16*9.8f; break; case 0x52: gyrX=(float)((int16_t)(ucRxBuffer[3]<<8)|ucRxBuffer[2])/32768*2000; gyrY=(float)((int16_t)(ucRxBuffer[5]<<8)|ucRxBuffer[4])/32768*2000; gyrZ=(float)((int16_t)(ucRxBuffer[7]<<8)|ucRxBuffer[6])/32768*2000;// flag.gyro_ok=1; break; case 0x53: roll =(float)((int16_t)(ucRxBuffer[3]<<8)|ucRxBuffer[2])/32768*180; pitch =(float)((int16_t)(ucRxBuffer[5]<<8)|ucRxBuffer[4])/32768*180; yaw =(float)((int16_t)(ucRxBuffer[7]<<8)|ucRxBuffer[6])/32768*180;// printf("roll:%.2f pitch:%.2f yaw:%.2f \n",roll,pitch,yaw);// printf("accX:%.2f accY:%.2f accZ:%.2f \n",accX,accY,accZ);// flag.angle_ok=1; break; } ucRxCnt=0; }}在串口中断里调用这个就行了。
二、上位机磁力计校准
使用原厂的上位机进行磁力计的椭球拟合校准时,请务必不要只看原子哥论坛的这个帖子,要仔细看原厂的说明书:
记得事先校准好再焊到板子上,不然就只有那超长杜邦线接usb转串口拿着四轴转来转去校准了。。
另外一说,这个上位机写得好烂,很多bug,把我电脑卡死不止一次,遇到bug不要着急,关了重开,一定要确定连上了模块且数据都ok再校准,如果点了开始校准然后椭圆图像卡住了,就重开重来。。。记得校准的时候远离强磁场。
三、尴尬的180度
当你完成磁力计校准之后,你会发现在某个yaw角度,数值是170多度,然后当你再转一点yaw角,上位机就会显示-170多度,因为这玩意输出的范围是-180~180度,如果直接带去控制,那么这种情况下,你的四轴认为自己转了一圈,要转一圈再回来,误差就会非常大,PID的话就会失控。
感谢各位的阅读!关于"JY901 NOTES TM4串口数据读取的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
串口
数据
磁力
磁力计
示例
分析
内容
原厂
帖子
更多
模块
篇文章
不错
实用
着急
准时
尴尬
转来转去
函数
厂家
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技名片
互联网品科技
互联网公司 科技公司
深圳互联网科技公司
壹账通互联网科技
菲比寻常互联网科技
互联网科技网站
一五八零互联网科技
科技大学互联网专业好不好
汉立互联网科技有限公司联系电话
安控科技rtu产品工业互联网
互联网科技实习生岗位职责
互联网科技公司实习生
厦门千工互联网科技有限公司
移动互联网科技公司
互联网科技与大数据专业
国大互联网教育科技有限公司工作
陕西云淼互联网科技公司
上海同邻互联网科技有限公司规模
北京军民互联网科技公司
华服互联网科技靠谱吗
广东猪兼强互联网科技有限公司
科技金融是不是互联网金融
合肥互联网科技公司
南京欣网互联网科技
互联网科技类展会
卫星互联网科技股票
互联网5g黑科技有哪些
银川新华互联网科技学校联系电话
众安科技工业互联网合作