STM32学习随笔 12.13

发布时间 2023-12-13 11:29:38作者: 上够了逼班的老王

慢摸摸的学习

之前跟着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

测试的视频链接