没事做突然想写博客,然后发现没有刷什么有价值的题,就写个做实验的记录吧。
首先是构思的思维导图
可以看到,我用到了按键结合中断作为输入,使用定时中断来计数,同时显示使用的是oled屏幕,大小为128*64个像素点。
屏幕图片源水印淘宝店( ̄▽ ̄)"
ok开始第一步,配置管脚图
oled管脚*7,一个3v3,一个GND,还有五个GPIO输出。
这边用的是串行通信的方法,各个管脚功能分别是
CS:OLED 片选信号。
RST(RES):硬复位 OLED。
DC:命令/数据标志(0,读写命令;1,读写数据)。
SCLK:串行时钟线。在 4 线串行模式下,D0 信号线作为串行时钟线 SCLK。
SDIN:串行数据线。在 4 线串行模式下,D1 信号线作为串行数据线 SDIN。
oled管脚:
CS~PA0
DC/RS~PA2 //这边的DC管脚在程序里面被记作了RS,都一样
RST~PA1
SCLK/D0~PB5
SDIN/D1~PB6
按键管脚*5,一个5v,一个GND,3个GPIO输入。
按键功能为
key0:开始和暂停计时
key1:重置计时
key2:计次,多人跑步的时候记下各个人情况
按键管脚:
key0~PB0
key1~PB1
key2~PB2
ok,既然心里有B数了,那么就可以开始设置初始化函数了
KEY_INIT(),我设置为上拉输入了,管脚改一下,就不多说了。
EXTI_INIT(),从按键设置可以看到,应该选中断线0,1,2,配置管脚为下降沿触发,设置NVIC中断优先级,中断服务程序先留着。
计时器初始化,这边用三号定时中断,TIM3_Int_Init(100,