控制方案 → TM32F4芯片+MX28T舵机+STM32Cube+HAL库函数
需要注意的是
MX28T 是三线的半双工异步串口通信,半双工异步通信的时候TX脚是开漏输出,需要加个上拉电阻,舵机手册推荐电路图上也有说明,在tx脚添加一个10k上拉电阻。
我之前接收发送代码测试正常但是一直没收到正确的内容,确认了代码没有问题后在tx脚接了个10k电阻便收到了正确内容。
----------------------------------------------------------------------------------昏割线-------------------------------------------------------------------------------------
数据包结构
数字舵机和单片机之间的数据包格式在该舵机说明手册上有清楚的说明示范。自己的代码示范↓
//复位函数
void SR518_RESET(uint8_t id)
{
uint8_t command[6];
command[0]=0xFF;
command[1]=0xFF;
command[2]=id;
command[3]=0x02; //数据长度 即该位之后至结束的数据的个数
command[4]=0x06; //复位指令
command[5]=~(command[2]+command[3]+command[4]);//校验和 注意是取反
HAL_UART_Transmit(&SR_HUART,command,6,0X0F); //HAL库串口发送函数
}
其余的命令可以参照这个格式对照说明书上的控制地址进行修改即可。
------------------------------------------------------------------------------继续昏割线------------------------------------------------------------------------------------
顺便 一开始舵机灯一直亮着但是能正常工作
看了说明书很久找不出所以然 跑去问客服 客服说可能固件有问题让我刷一波固件
在准备刷固件的中途 突然发现我初始化没加延时=L=
嗯所有硬件外设都得需要时间初始化嘛年轻人 我如是和自己说
并写上了 HAL_Delay(200);
//选分类的时候发现好像没有硬件或者嵌入式什么的 代码语言也没有C 真是让人伤心