这篇就是单纯的复习复习。当然只是单谈程序设计思路,细节见代码;下面开始看看自己干了什么?又做了什么思考?
- 首先是stm32的入门程序,大家都不陌生,就是点亮led灯,最重要的一部还是看原理图,去了解怎么让LED点亮,其实就是对应引脚输出高低电平来控制亮灭;在这里我们就简单了解了GPIO这个外设的基本使用,我们知道GPIO的初始化结构体其实就是三个成员-----引脚,模式,速度,所以用它的时候,清楚这三个东西该配置什么样的参数即可。
- 根据原理图,其实按键检测就是检测相应引脚的高电平输入,低电平的时候按键弹起,高电平的时候按键按下;与上面有差别的是,上面是电平输出,这个的电平输入(说白了还是得了解原理图)。
- 从上面我们可以看出来,在单片机中,如要得到某种状态的改变,一般如果这种改变后的状态跟原状态是对立的,那么一般都是电平的高低转换来实现的,(那如果你说GPIO的8种模式怎么解释,其实这是多个高低电平来共同决定的,别忘了16进制说到底还是2进制);下面再来说说中断,其实中断的检测就是检测电平的变化,EXTI总共20条线路,它可以决定,电平的变化是产生中断还是事件,如若是中断,就会将相应中断线路的信号传入到NVIC里,依据在NVIC配置的中断源以进入中断处理函数运行程序。具体配置不再赘述。
- 接下来再说说系统滴答定时器,它的工作原理就不再赘述了,具体见先前的随笔;我们知道NVIC是内核外设,而SysTick是内嵌在NVIC里的,那为什么那嵌在人家里面呢?我想大概是它要提供时基来维持系统的正常运行,所以把它设计在NVIC里会更方便,还有一个原因就是,中断的运行也是需要SysTick的配合;纯裸机程序我们就是用它来实现延时或其他,但前面我们说到的ucosiii,就是通过它不断产生中断,中断服务程序更新任务的等待的时间,以处理系统事务(个人理解这就是时基的本质)。
- 再者,计算机再聪明,能力再强,他也需要得到表现的机会,也就是得到处理数据的机会;怎么得到?那就是通过通讯的方式,当前的通讯方式的线路大概分为有线和无线,再F1的板子上先前接触到了几种串行通讯方式都是有线的,无线的信号传有WIFI等,无论是那种方式,归根结底,就是统一好接受端和发送端的协议,先前也总结过,不过多赘述。
- 再说说看门狗,大多数资料说,窗口看门狗与独立看门狗的区别是能检测程序是否跑飞了,我觉得这种说法不太正确,看门狗的本质是递减定时器,减到某一设定值(0或0x40时)就会产生系统复位,再翻译一下就是,再X时间内没有重装载计数器就会产生复位,他们的真正区别在于窗口看门口有上限,在此之前喂狗也是会复位的;还有一个区别是所用的时钟源和应用场景不一样,跟程序跑不跑飞,貌似没任何关系。
那么今天的小体会就先这里。。。