1、今天学习的第一个是LED屏的显示
这个比较简单,主要是先将OLED初始化,然后进行显示屏幕。
当字符串的数字大于或小于输入的数据时,会从左到右进行改变,譬如,字符串设置为4,输入数据23,OLED显示0023,输入数字34562,OLED显示4562,以此类推。如果想删除某个字符,也可以使用OLED.ShowString这个函数,字符为空格即可进行删除。
2、对射式红外传感器计次
今天学习的第二个就是用EXTI进行中断,效果如视频,遮光一次就记一次数,反之不计
VID_20240722_121654
主要通过以上代码,分别将GPIO、AFIO、EXTI和NVIC进行设置
首先对于中断来说,类似于以上的关系,我们可以将以上方式假想为医院叫号系统,CPU为医生,而NVIC作为医院的叫号系统,需要合理规划先进行那个中断请求,并不是谁先到就谁先中断,而是根据病人的严重情况进行一个优先级的分类,通过优先级进行排序,然后传给CPU进行中断。
然后就是本节学习的最主要的过程,分为4步,首先GPIO进行中断,在设置中断接口时,最好不要把A1和B1都设置为中断口,因为GPIO是将所有的接口1放到同一个通道,然后由AFIO(当作数据选择器)去选择其中一个作为通道口,然后传输16个给到EXIT,EXIT主要有两种,一种是中断响应,还有一种就是事件响应。
如下所示:
最后介绍了一下旋转编码器的功能
通过正交方波去分辨究竟是正转还是反转,A B相差90°,进行分辨。
VID_20240722_204811
这个是旋转编码器计次。