背景:项目中需要用到可以低速转动的电机,并且力矩需要满足项目条件,因此这里选用小米电机(CyberGear 微电机)。
本实验硬件条件:单片机,STM32F103RET6、CAN通讯芯片。
注:PCB由自己设计绘制,在设计中单片机本身的时钟频率无法与高频率CAN同步,因此需要增加8M晶振。
原理图设计
下图为单片机主电路图
下图为CAN通讯电路图
控制程序设计
控制程序都封装在.c文件中了
小米电机ID检查,通信类型为0
/*—————————————————————————————————————————————————————————————————————————————————*/
/** @brief 小米电机ID检查,通信类型为0
* @param[in] id: 控制电机CAN_ID【出厂默认0x7F】
**/
void check_cybergear(uint8_t ID)
{
uint8_t tx_data[8] = {
0};//没有数据
//扩展ID的组合,依旧是3个部分
txMsg.ExtId = Communication_Type_GetID<<24|Master_CAN_ID<<8|ID;
MyCAN_Transmit(txMsg.ExtId,txMsg.DLC,tx_data)