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

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

[复制链接]
大浪10010 发布时间:2015-3-11 16:19
终于开始系统学习STM32了,以前偶尔看一眼,总是不能坚持,总是这样那样的借口,向后推迟,但始终在俺强大的内心深沟里,想学它。/ z; F$ h) u" B2 }
    废话少说,这就开干了,用的MDK做开发环境。$ F! z! W" e  v
    先学简单的IO口的操作,这可是入门的很重要的一步,不学好打击积极性。
5 T% L$ \0 j) X- R5 A/ K    GPIO->ODR 这是我第一次见到这样的书写方式,决定百度一下。
! }  R  n0 K8 G- i6 `1 j       GPIO->ODR是32位的输出数据寄存器(高16位保留,低16为依次对应某个GPIO口的16个引脚)。对ODR赋值是一次操作16位的,也就是同时设置了16个引脚的输出电平;而GPIO_PIN是指某个端口的具体某一个引脚,是位操作,可以通过设置BSRR或BRR寄存器来设置某一特定引脚的输出电平,而保持其他引脚输出不变,速度快,效率高。具体可以看看stm32参考手册关于GPIO寄存器的说明#include <stm32f10x_lib.h>                        // STM32F10x Library Definitions3 m" Q% s+ @4 _& E# e6 S6 H
#include "STM32_Init.h"                           // STM32 Initialization
' k  n+ H& H- z$ R' ]- g* r7 ]' U& n  f1 K& _

. x! I, s( b3 b0 Q. j+ T9 X* S#define LED  ( 1 << 5 )                // PB5: LED D25 Q3 P4 m3 S8 C3 p( m8 ^6 G. w

( o: ?( D, T: J2 p( j

( b' c! c6 k3 u3 A  m
- O* q: I8 h$ w& D
6 y, p: N0 E3 z/ [
void Delay(vu32 nCount) {4 Y& F7 X2 P3 {: B0 a. k
  for(; nCount != 0; nCount--);/ ^/ B3 z7 l* u8 u5 ~4 t) B
  }
- f! E- {- o9 U! \, d
( X& q9 u. k! |) k7 S! }  u
1 c$ a! O* x+ x9 s; o( l7 ]' ]
! z' a& z; _0 S

7 q" U  Y9 O! F& @* ?int main (void) {  ]& d0 a0 B* [: O& w  G
  stm32_Init ();                                  // STM32 setup
% K" ~: e& ?4 M! O  for(;;) {
3 m  e  F! u) l- n    //GPIOB->ODR &= ~LED;# P9 O, `* P2 I. L8 v5 D  u' }
//我将/GPIOB->ODR &= ~LED;换成了GPIOB->BRR = GPIO_Pin_5;显示效果不变1 Z" M- |; [3 J- _  p: X1 X
        GPIOB->BRR = GPIO_Pin_5;                            // switch on LED
, Y0 H) s' ^4 r  h' }        Delay(2000000);
3 M; h. B8 T, N0 |2 L5 v! W7 H9 g    //GPIOB->ODR |=  LED;                           // switch off LED
- u. t! a+ }+ D, P    GPIOB->BSRR = GPIO_Pin_5;
  {* s6 j+ l3 O# L9 D        Delay(2000000);: Q4 T* K5 N( e) K$ X& b
    }7 g4 {- A! K0 F& X% i6 v
  }
* @2 x# Q+ r; w1 p      
: a' g7 l7 ?& f   4 ]" e& V. r+ v5 s0 w

' a' R$ [- o# h: W
赞 收藏 评论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 手机版