你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32学习日记之简单的IO口的操作

[复制链接]
大浪10010 发布时间:2015-3-11 16:19
终于开始系统学习STM32了,以前偶尔看一眼,总是不能坚持,总是这样那样的借口,向后推迟,但始终在俺强大的内心深沟里,想学它。/ |% A0 e1 f0 K$ P
    废话少说,这就开干了,用的MDK做开发环境。* Q* C" S# i3 K/ Y( Q
    先学简单的IO口的操作,这可是入门的很重要的一步,不学好打击积极性。
; a' Z% y) L3 ?9 b' z# T    GPIO->ODR 这是我第一次见到这样的书写方式,决定百度一下。 2 L- e& X. i* i  ?8 D( _
       GPIO->ODR是32位的输出数据寄存器(高16位保留,低16为依次对应某个GPIO口的16个引脚)。对ODR赋值是一次操作16位的,也就是同时设置了16个引脚的输出电平;而GPIO_PIN是指某个端口的具体某一个引脚,是位操作,可以通过设置BSRR或BRR寄存器来设置某一特定引脚的输出电平,而保持其他引脚输出不变,速度快,效率高。具体可以看看stm32参考手册关于GPIO寄存器的说明#include <stm32f10x_lib.h>                        // STM32F10x Library Definitions% O4 a) d4 I( N% @0 I3 I
#include "STM32_Init.h"                           // STM32 Initialization( l( G$ m& c# E$ R4 W8 i
* i/ H# O& [7 Q' H* S# Z' d: q
+ @1 T- X3 h& p) K: X
#define LED  ( 1 << 5 )                // PB5: LED D2- c* M( \) y# M6 T
7 f5 A; @  V4 C. v
* F4 n" [2 h; K+ M1 Y/ k

: @# ~3 W" E$ u5 B) \2 }

: n- J3 w  `& a+ w0 tvoid Delay(vu32 nCount) {/ Y6 M. t+ x8 i! A& ^! W: s, x
  for(; nCount != 0; nCount--);
6 F9 G' K0 j6 b4 M% T" M( |7 ?- K  }7 S$ E3 J! M7 b7 N. y
$ q) Z* s* L1 K# r

7 W1 ^; V/ P' z9 ~. O/ j; I1 H+ ?' e) t8 l1 F% w/ V+ o! {

, q* f* ?1 b3 eint main (void) {
8 b0 L. z) J/ E5 @0 c* o9 g- g  stm32_Init ();                                  // STM32 setup! c0 P5 U( C8 |2 f; w
  for(;;) {
- W: T; k& |- X5 F    //GPIOB->ODR &= ~LED;; ]+ a% F5 z4 T
//我将/GPIOB->ODR &= ~LED;换成了GPIOB->BRR = GPIO_Pin_5;显示效果不变
$ B' L! B2 m: ^2 Z: j        GPIOB->BRR = GPIO_Pin_5;                            // switch on LED
: x1 j5 U0 J4 B3 {0 U6 C        Delay(2000000);
& |8 Z: O" p- }1 w' E    //GPIOB->ODR |=  LED;                           // switch off LED
+ I0 `3 t- H# F8 T% d    GPIOB->BSRR = GPIO_Pin_5;" b8 m* v  i* w0 Z5 H% R
        Delay(2000000);1 S4 _9 t4 }5 \" v
    }- {1 E7 T+ `' A' n. X- [* |# P0 s
  }
5 u( M* K- {' A      . n4 t( U/ q, n( x8 k2 S
   8 b8 ]+ h- e" N# y8 m6 e
+ w5 ]& H% e0 I% s
赞 收藏 评论10 发布时间:2015-3-11 16:19

举报

10个回答
大浪10010 回答时间:2015-3-11 16:20:51
希望大神带我飞,,
1407W 回答时间:2015-3-11 16:25:03
谢谢楼主分享 我也会点灯了
kqh1120 回答时间:2015-3-11 16:25:46
谢谢分享。学习了啊 12.gif
大浪10010 回答时间:2015-3-11 16:28:44
我只是初学者,,
拼命三郎 回答时间:2015-3-11 16:59:06
xxxx.png
loyi 回答时间:2015-3-12 09:07:12
good job
_ilikerome_ 回答时间:2015-3-12 09:28:24
LZ代码整理下,好乱
bit 回答时间:2015-3-12 09:32:03
星星点灯了
黄小狼 回答时间:2015-3-12 13:47:56
三狼总是学习学习的,嘿嘿
wu1169668869 回答时间:2015-3-12 13:59:55
就爱这么简洁的风格
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版