打印

攸米板学习一:控制LED,轮询方式按键

[复制链接]
1773|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
quyifei|  楼主 | 2013-6-6 15:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 quyifei 于 2013-6-6 15:10 编辑

关于STM32 攸米板的介绍,请看
https://bbs.21ic.com/icview-560714-1-1.html

GPIO作为一个最最基本的外设,往往会作为第一个要讲的,我的也不例外。
攸米板上有4个LED,红黄蓝绿,这次要讲的例程就是让LED逐个闪烁,USER按键可以控制停止或者继续。 先看一个视频。

我经常在想如何去写实验笔记。 我的笔记肯定是给初学者看的。对于初学者,要学的东西很多,如果面面俱到,深入到细节,往往会有只见树木不见森林的感觉,说的直白点就是晕。 我的建议是先从大处入手,先有一个框架,不要深入细节,然后再逐步的细化。 我的笔记也会是这样,从整体介绍,点出一些要点。 细节问题就交给Reference Manual了。

对每一个实验, 都会有硬件和软件的部分, 我会分别介绍。

硬件连接
攸米板上4个LED分别和PB12~15连接,原理图见下。 输出高电平LED亮。
板上还有一个USER按键,未按时PB11低电平,按下时PB11高电平。
软件说明
对所有的外设,STM32的配置的方法都是一样的。
1. 想要启动外设的时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);


2. 对外设配置,一般都要用到一个init函数
GPIO_Init(GPIOB, &GPIO_InitStructure);


3.下面就是对外设的操作了
  读GPIO
GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_11);


写GPIO
GPIO_ResetBits(GPIOB, GPIO_Pin_13);
GPIO_SetBits(GPIOB, GPIO_Pin_14);


4. 本例还对Systick进行了配置,配置为1000Hz
SysTick_Config(SystemCoreClock / 1000);


5. 对USER按键采用查询方式,每次systick中断时都会查询一次,也就是每1ms查询一次。
对于初学者,不懂的问题一定比较多。我建议把更多的时间放在实践上,而不是去看理论。 缺少了实践,理论会越看越晕。 建议大家执行源代码,源代码中有充分的注释。 单步执行,一条一条看下去,看看每条语句是做什么用的。

关于源代码
1. 在IAR EWARM 6.40下编译通过,选用的调试端口是ST-LINK。
  a)在目录EWARM,打开project.eww。
  b)选择菜单project->rebulid all
c)Download, 执行。
2. 工程文件架构请看:
http://blog.sina.com.cn/s/blog_507c8e750101eu4s.html
3. 源代码下载
http://yunpan.cn/QeZH7aEFGTwpT (访问密码:9378)
这个例程也是一个非常好的模板,我今后提供的例程都会基于这个模板。



沙发
quyifei|  楼主 | 2013-6-6 15:22 | 只看该作者
本帖最后由 quyifei 于 2013-6-6 15:25 编辑

源代码

YOCTO_LED_Polling.zip

487.16 KB

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:最小STM32开发板-攸米板淘宝: yifei-stm.taobao.com 博客: blog.sina.com.cn/yifeistm

29

主题

146

帖子

1

粉丝