电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区
论坛
开发板专区
【STM32F412-DISCO 开发板试用体验】GPIO&SYSTICK的使用
【STM32F412-DISCO 开发板试用体验】GPIO&SYSTICK的使用
donatello
LV6工程师
| 2017-05-18 17:29:35
浏览量 820
回复:0
发表新帖
串口弄好了,那接下来当然是玩玩点灯了。要玩花样点灯的话,则必须要有一个延时函数,不管是精确延时函数还是粗延时函数。这里我引用了之前的Nucleo-F412例程中的以SYSTICK(系统滴答时钟)为基础的精确延时函数,SYSTICK是以SYSCLOCK(系统时钟)作为时钟源经过分频进行计数的,以F412的100MHz主频为例,100MHz100分频后为1MHz,1s/1M=1us,即计数1000次后溢出,用时1us,这样,以此为计时单位来延时,就可以得到基于SYSCLK的精确延时函数,该延时函数的精度要比用while循环死等的粗延时函数要高得多(while循环死等粗延时函数的基础其实是MCU执行一条指令的时间,但是学过汇编的人们都知道,执行指令是要经过寄存器和运算器的,并且极易受环境温湿度影响,而SYSTICK虽然也会受温度影响,但是是直接用MCU的时钟源分频后计时的)。
延时函数弄好了之后,就是即为简单的配置GPIO引脚,需要配置PE0到PE3。注意,这四盏灯都是接在VCC上面的,因此是灌电流法点亮,即低电平点亮。
废话说完,赶紧上效果图和代码。
串口弄好了,那接下来当然是玩玩点灯了。要玩花样点灯的话,则必须要有一个延时函数,不管是精确延时函数还是粗延时函数。这里我引用了之前的Nucleo-F412例程中的以SYSTICK(系统滴答时钟)为基础的精确延时函数,SYSTICK是以SYSCLOCK(系统时钟)作为时钟源经过分频进行计数的,以F412的100MHz主频为例,100MHz100分频后为1MHz,1s/1M=1us,即计数1000次后溢出,用时1us,这样,以此为计时单位来延时,就可以得到基于SYSCLK的精确延时函数,该延时函数的精度要比用while循环死等的粗延时函数要高得多(while循环死等粗延时函数的基础其实是MCU执行一条指令的时间,但是学过汇编的人们都知道,执行指令是要经过寄存器和运算器的,并且极易受环境温湿度影响,而SYSTICK虽然也会受温度影响,但是是直接用MCU的时钟源分频后计时的)。
延时函数弄好了之后,就是即为简单的配置GPIO引脚,需要配置PE0到PE3。注意,这四盏灯都是接在VCC上面的,因此是灌电流法点亮,即低电平点亮。
废话说完,赶紧上效果图和代码。
0
收藏
举报
分享
×
微信分享
扫描二维码分享
qq分享
QQ空间分享
微博分享
我来回复
登录后可评论,请
登录
或
注册
所有回答
数量:
0
×
举报
举报人:
被举报人:donatello
*
类型:
请选择类型
问题质量差
垃圾广告信息
偏离社区主题
违规内容
不友善内容
与社区已有问题重复
以上选项都不是
*
详细原因:
取消
提交
x
收藏成功!点击
我的收藏
查看收藏的全部帖子