【陀螺仪JY61P&维特智能】通过单片机修改波特率和角度参考的方法

根据官方文档:

修改波特率
1.解锁:FF AA 69 88 B5
1.1延时200ms
2.修改波特率:FF AA 04 06 00
2.1切换已修改的波特率然后重新发送解锁和保存指令
2.2解锁:FF AA 69 88 B5
2.3延时200ms
4.保存: FF AA 00 00 00

XY轴角度参考
角度参考是以传感器当前的实际位置,让xy轴的角度归零,做一个相对归零操作。
指令操作流程
1.解锁:FF AA 69 88 B5
1.1延时200ms
2.校准:FF AA 01 08 00
2.1延时3秒(实测200ms也可)
3.保存: FF AA 00 00 00

Z轴置零
注:z轴归零需要在六轴算法的前提下,算法切换可以在上位机配置界面修改,九轴设备下的九轴算法是绝对角度,不能归零。指令操作流程:
1.解锁:FF AA 69 88 B5
1.1延时200ms
2.校准:FF AA 01 04 00
2.1延时3秒(实测200ms也可)
3.保存: FF AA 00 00 00


uint8_t  JY61P_ULOCK_CMD[5] = {0xFF, 0xAA, 0x69, 0x88, 0xB5}; //解锁
uint8_t  JY61P_BAUD_CMD [5] = {0xFF, 0xAA, 0x04, 0x06, 0x00}; //波特率修改为115200
uint8_t  JY61P_SAVE_CMD [5] = {0xFF, 0xAA, 0x00, 0x00, 0x00}; //保存
uint8_t  JY61P_XY0_CMD  [5] = {0xFF, 0xAA, 0x01, 0x08, 0x00}; //XY角度归零
uint8_t  JY61P_Z0_CMD   [5] = {0xFF, 0xAA, 0x01, 0x04, 0x00}; //Z轴归零

/* 延时函数 */
void delay_ms(uint32_t ms)  
{  
    uint32_t i, j;  

    for (i = ms; i > 0; i--)  
    {  

        for (j = 800; j > 0; j--); // 这个值可能需要调整  
    }  
}  
/* IMU波特率修改函数 */
void JY61P_BAUD(void)
{
    usart1_send_buff(JY61P_ULOCK_CMD, sizeof(JY61P_ULOCK_CMD));  //解锁
    delay_ms(200);//延时200ms
    usart1_send_buff(JY61P_BAUD_CMD, sizeof(JY61P_BAUD_CMD));    //修改波特率为115200
    delay_ms(200);
    usart1_send_buff(JY61P_SAVE_CMD, sizeof(JY61P_SAVE_CMD));    //保存
    delay_ms(200);
}
/* IMU归零函数 */
void JY61P_START(void)
{
    usart1_send_buff(JY61P_ULOCK_CMD, sizeof(JY61P_ULOCK_CMD));  //解锁
    delay_ms(200);//延时200ms
    usart1_send_buff(JY61P_XY0_CMD, sizeof(JY61P_XY0_CMD));    //XY轴归零
    delay_ms(200);
    usart1_send_buff(JY61P_Z0_CMD, sizeof(JY61P_Z0_CMD));      //Z轴归零
    delay_ms(200);
    usart1_send_buff(JY61P_SAVE_CMD, sizeof(JY61P_SAVE_CMD));    //保存
    delay_ms(200);
}

实现效果:单片机上电初始化后XYZ数值为0

作者:鹿屿二向箔

物联沃分享整理
物联沃-IOTWORD物联网 » 【陀螺仪JY61P&维特智能】通过单片机修改波特率和角度参考的方法

发表回复