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

小米CyberGear电机 STM32软件修改CAN_ID

需要同时控制多个CyberGear小米电机时,需要更改电机的CAN_ID。原本在其给的上位机进行修改,发现其需要指定的USB-CAN模块(维特),手头没有,网购需要三四天,时间太长。想着能不能通过STM32进行修改,先前从网上找的一些代码,已经驱动了小米电机正常运动,所以其CAN通讯没问题。

首先借鉴网络资源:小米CyberGear微电机 软件修改CAN_ID 注意事项_小米微电机app最新版本更新内容-CSDN博客。知道大概怎么改。然后找了源代码,发现跟别人的不一样:

void set_CANID_cybergear(MI_Motor *Motor,uint8_t CAN_ID)

{

       uint8_t tx_data[8]={0};

       txMsg.ExtId = Communication_Type_CanID<<24|CAN_ID<<16|Master_CAN_ID<<8|Motor->CAN_ID;

    Motor->CAN_ID = CAN_ID;//将新的ID导入电机结构体

    can_txd();      

}

很长的一个等式,看的晕头转向。

花了两三个小时,发现驱动不了。然后,开始顺着代码从头到尾读一读(真不想读)。然后发现这个地方txMsg初始化不完整,而源代码初始化实在电机初始化中。更改ID时,小米电机不能初始化。所以将小米电机初始化中的代码,复制出来一部分,贴到这里:

//设置电机CAN_ID(通信类型7)更改当前电机CAN_ID , 立即生效,**需在电机使能前使用**

void set_CANID_cybergear(MI_Motor *Motor,uint8_t CAN_ID)

{

       uint8_t tx_data[8]={0};

         txMsg.StdId = 0;            //配置CAN发送:标准帧清零

    txMsg.ExtId = 0;            //配置CAN发送:扩展帧清零    

    txMsg.IDE = CAN_ID_EXT;     //配置CAN发送:扩展帧

    txMsg.RTR = CAN_RTR_DATA;   //配置CAN发送:数据帧

    txMsg.DLC = 0x08;           //配置CAN发送:数据长度

       txMsg.ExtId = Communication_Type_CanID<<24|CAN_ID<<16|Master_CAN_ID<<8|Motor_CAN_ID;

  can_txd();  

       Motor->CAN_ID = CAN_ID;//将新的ID导入电机结构体

}

在cybergear.h增加:

#define Motor_CAN_ID 0x7F // 当前电机ID,默认0x7F

#define Motor_CAN_ID_NEW 0x1F // 拟使用ID

在main函数中增加:

       while(1){

              set_CANID_cybergear(&mi_motor[0],Motor_CAN_ID_NEW);

              HAL_Delay(500);

       }

重新给电机上电。等几秒后,再将上述代码注释掉,并修改#define Motor_CAN_ID 0x1F。之后电机的ID就是0x1F啦。

相关文章:

  • 一、OpenSM 架构部署及原理详解
  • 『大模型笔记』Ollama环境变量大全!
  • 青少年编程与数学 02-009 Django 5 Web 编程 13课题、URL分发
  • HAL库框架学习总结
  • 数据结构与算法-队列
  • 探索未来科技:AIP智能体平台引领人工智能新纪元
  • 企业级高可用 Kubernetes 实践:基于青云 LB 搭建容灾与负载均衡集群全攻略
  • Linux性能分析工具Trace使用
  • nuxt中引入element-ui组件控制台报错问题
  • 对openharmony HDF驱动框架的C/S设计模式和单例类的说明
  • 【设计模式】-工厂模式(简单工厂、工厂方法、抽象工厂)
  • flask和django的对比
  • ECCV2022 | LGV | LGV:利用大几何邻域提升对抗样本的可迁移性
  • Vue2组件通信
  • 工作流改造:从一到千
  • 网络安全用centos干嘛 网络安全需要学linux吗
  • DBSCAN 基于密度的空间带噪聚类法
  • LM Studio纯CPU运行大模型不如ollama效率高
  • jenkins服务启动-排错
  • 数组_二分查找
  • 证监会副主席李明:近期将出台深化科创板、创业板改革政策措施
  • 复旦一校友捐赠1亿元,却不留名
  • “先增聘再离任”又添一例,景顺长城基金经理鲍无可官宣辞职
  • 受关税政策影响,沃尔玛将上调部分商品在美售价
  • 一种声音·阿甘本|即将到来的中世纪;“新”与“旧”……
  • 诠释微末处的丰盈:“上海制造佳品汇”首届海外专场即将亮相日本大阪