CrazySuiJi 发表于 2020-8-23 16:54:58

STM32野火开源平衡小车(二)之外设搭建_编码器

野火开源平衡车官网板块

[https://www.firebbs.cn/forum.php?mod=forumdisplay&fid=129&page=1](https://www.firebbs.cn/forum.php?mod=forumdisplay&fid=129&page=1)

参考资料

暂无

参考视频(这个群主讲的不错)

[https://www.bilibili.com/video/BV1j7411z7uX](https://www.bilibili.com/video/BV1j7411z7uX)

硬件平台

![](https://img-blog.csdnimg.cn/20200822212404140.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)

开发平台

KEIL5, STM32F103X主控,程序用的SWD下载(啥下载器都行,能下载进去就好,用串口下载也是可以的)

开发(一)

把作者写好的程序移植过去,我们等下改程序就行, 千万不要自己写,要学会改

(喜欢自己写的,请麻烦去学开发板,不要来学车车了,有轮子就用,没轮子才要造)

![](https://img-blog.csdnimg.cn/20200822223842884.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)

配置编码器引脚

![](https://img-blog.csdnimg.cn/20200822224442619.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)

![](https://img-blog.csdnimg.cn/20200822224807968.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)

右轮子的编译器用到了TIM2,PA0和PA1引脚(用视频UP的程序就行 不用改)

![](https://img-blog.csdnimg.cn/20200822224928121.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)

同理 右轮用到了 TIM4.PB6和PB7,直接用就行

![](https://img-blog.csdnimg.cn/20200822225243879.png)

![](https://img-blog.csdnimg.cn/20200822225357273.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)

编写读取编码器值函数

![](https://img-blog.csdnimg.cn/20200822225618790.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)

编码器中断函数,给他一个中断地址

(因为TIM2,TIM4那边有 下面更新中断, 所以要中断服务函数

TIM_ClearFlag(TIM4,TIM_FLAG_Update);
TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE);
)

![](https://img-blog.csdnimg.cn/20200822225701167.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p3ZGVuZzE5OTU=,size_16,color_FFFFFF,t_70)

编码器编写完成

没动过手,直接用别人的代码即可 不用修改

追求卓越 发表于 2020-9-10 07:38:36

问下楼主,这个程序可以实现电机正反转对应编码器计数的加减吗?

CrazySuiJi 发表于 2020-9-10 12:21:20

追求卓越 发表于 2020-9-10 07:38
问下楼主,这个程序可以实现电机正反转对应编码器计数的加减吗?

可以的 编码器在T12模式下 正反转会相位差会超前/滞后90度 这样就能实现+-控制了
页: [1]
查看完整版本: STM32野火开源平衡小车(二)之外设搭建_编码器