慢摸摸的学习
之前跟着B站江协科技UP学51感觉没啥,学到STM32就感觉很吃力,又想钻研清楚,看到定时器TIM章节零零总总差不多耽搁快进一个月了
总结下近期学到的东西
学习掌握多元条件运算符,这样可以省略很多if()else()或者switch()case;语句
示例:
i -= (i > 10000) ? 10000 : (i > 1000) ? 1000 : (i > 100) ? 100 : (i > 10) ? 10 : 1;
i += (i < 10) ? 1 : (i < 100) ? 10 : (i < 1000) ? 100 : (i < 10000) ? 1000 : 10000;
(Speed > 0) ? LED_On1(): (Speed < 0) ? LED_On2() :LED_Off();
(Speed > 0) ? Angle-=Speed : (Speed < 0) ? Angle-=Speed :Angle;
学习掌握普通定时器TIM2/3/4
这里说到定时器再提一句提醒自己,先提前选择器件再确认使用定时器
为节约学习成本(主要是贪便宜QAQ)购买的STM32F103C6T6,习惯性的学习总结及糅合之前所学的东西做个联动,在学习编码器测速后就想着将舵机也添加进来
手转编码器的值变为控制舵机的角度,因为示例的课程已经使用了TIM2和TIM3,舵机之前的示例也是使用的TIM2,舵机和中断函数同时使用TIM2造成冲突,就想着怎么解决
然后就引入TIM4,后来在单片机上死活不动,卡壳了快进两天时间,才发现一个重要问题
C6T6没有TIM4
还好手头有合宙的CBT6,验证了使用TIM2/3/4的代码
当然使用C6T6也可以达到一样的实验效果,就是使用延时函数代替中断起到定时的作用,具体可以看下方链接工程源码
https://www.alipan.com/s/q275fBaHvU7
测试的视频链接