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

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

[复制链接]
大浪10010 发布时间:2015-3-11 16:19
终于开始系统学习STM32了,以前偶尔看一眼,总是不能坚持,总是这样那样的借口,向后推迟,但始终在俺强大的内心深沟里,想学它。
# @& M2 C" f9 N" G% [% @& y, T    废话少说,这就开干了,用的MDK做开发环境。7 Z; |; U' K( n! L( ?/ S/ z
    先学简单的IO口的操作,这可是入门的很重要的一步,不学好打击积极性。% e5 k3 `/ }2 f) Y6 J3 T3 W& \
    GPIO->ODR 这是我第一次见到这样的书写方式,决定百度一下。
. d; V1 s; M7 [- P       GPIO->ODR是32位的输出数据寄存器(高16位保留,低16为依次对应某个GPIO口的16个引脚)。对ODR赋值是一次操作16位的,也就是同时设置了16个引脚的输出电平;而GPIO_PIN是指某个端口的具体某一个引脚,是位操作,可以通过设置BSRR或BRR寄存器来设置某一特定引脚的输出电平,而保持其他引脚输出不变,速度快,效率高。具体可以看看stm32参考手册关于GPIO寄存器的说明#include <stm32f10x_lib.h>                        // STM32F10x Library Definitions
# B) m% L4 ^' W, ~( ^7 N#include "STM32_Init.h"                           // STM32 Initialization( E9 r9 D$ A" F  G# t

% L& r5 i& o) b( c
3 @) E& y$ S6 f& t; |/ t# x; |; X% ]
#define LED  ( 1 << 5 )                // PB5: LED D2
  ]1 V5 l3 W$ c* @5 J* B* E! ]  m: q, z& V: Y

% N2 y+ Y2 f- m" @: ?9 D7 n4 i
9 a- y8 c3 X* v/ ]1 _6 z

& l: [6 \# s1 b$ @1 |' `void Delay(vu32 nCount) {
; w+ w' a1 {( u/ Y  for(; nCount != 0; nCount--);7 k( |" c4 T$ g$ M7 B' |$ ?
  }# H3 S5 h& Z3 f8 u  `! Z; _

  |0 Y/ p% d3 o% W
  i! Y* X; R- h- z: y8 c

% ?; W* Q& n* d  A3 y7 y
! V3 s$ k% b7 b% w, t
int main (void) {/ G9 q0 y0 n! D0 J
  stm32_Init ();                                  // STM32 setup
3 w& I: S1 x+ D" A  for(;;) {
! f5 h6 }6 H6 b- l- N# y# p- ?3 v    //GPIOB->ODR &= ~LED;
+ O* f* h! ~, R9 D) p& S# z2 H//我将/GPIOB->ODR &= ~LED;换成了GPIOB->BRR = GPIO_Pin_5;显示效果不变  F1 s) O7 r3 g9 ^
        GPIOB->BRR = GPIO_Pin_5;                            // switch on LED
% r$ |/ r3 t6 D: R" K        Delay(2000000);7 |. N5 |; i' v1 }3 A" X
    //GPIOB->ODR |=  LED;                           // switch off LED
" J+ V& r1 n; _+ T3 ?    GPIOB->BSRR = GPIO_Pin_5;
- V7 _9 L0 Z7 U        Delay(2000000);
% X# L" B1 P2 X) H7 \: ]! V4 O' r    }3 i, P' J0 X- ^% M0 e
  }
- b9 E% S7 A7 x  N. c- r      
+ o9 y3 r( W: u! E! K; h& Q  Z     D7 p$ ?2 K# e( s

' x6 p8 B8 |6 b2 h* @
收藏 评论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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版