步进电机的适配,比起三轴传感器更加简单,因为步进电机的实现原理就很简单,就是io输出的组合(我的理解是通过两个线圈中电流产生的互斥的电磁力,推动转子正反转),通过延时控制步进速度。
配置四个gpio
我选用了PC10 PC11 PC12和PD2,原因很简单,这四个脚在板子上靠的很近且没被占用。
配置方法也简单,直接在cubemx上把这四个口配置成gpio,并在外围组件上把这四个脚配置成输入高阻,最后导出工程即可。


适配驱动
这块的动作也是丢给大模型去做的,我只是写了下面这些语句,之后codex便生成了可以使用的代码。
目前已经实现了三轴加速度传感器驱动,见drivers目录,还差一个步进电机驱动没有实现,帮忙按照同样的标准(标准见drivers目录下的md文件)实现步进电机驱动。该驱动资料不多,唯一的资料是https://wiki.seeedstudio.com/Gear_Stepper_Motor_Driver_Pack/。 但老实说,我认为这份参考实现的写法太过粗暴,没任何封装可言。我要求至少把步进位置按照查表法保存,正转正向查表,反转逆向查表。 另外两个注意事项,一是我准备用PC10 PC11 PC12 PD2四个gpio做IN脚,分别对应IN1, IN2, IN3, IN4,目前已在cubemx上配置好,可以直接使用(注意目前配置的是输入高阻,我认为gpio需要在驱动内部配置成需要的工作模式,并在停用驱动时恢复输入高阻),二是,我想把几个脚的翻转操作丢给定时器实现(用定时器1,应用层设置转动方向、转动度数和转动速度,这个时候启动定时器,定时器时间到后跑一相,当所需要跑的相位数到了后,就停止定时器)
同样的,这里就不贴代码了,代码角度来说,是一种污染。
硬件接线
在这里用电源板的原因是调试发现c562的5V带不动步进电机,当步进电机驱动板的电机供电切换到VCC时,C562就下不进程序了。
最终效果
确认完codex生成的代码功能为正转4096相再反转4096相,再编译烧录至c562板卡上运行,确认步进电机先正转一圈,再反转一圈,效果满足规格书要求。
我要赚赏金
