STM32F101CBT6---GPIO练习

发布者:Heavenly999最新更新时间:2016-09-06 来源: eefocus关键字:STM32F101CBT6  GPIO 手机看文章 扫描二维码
随时随地手机看文章
最近刚学下STM32,焊接了一个电路,并且调试了下程序,想用一个I/O口控制LED闪烁。对STM32还没上手,想控制GPIO还真不容易。花了一些时间看了下数据手册,终于把LED点亮了,实现了STM32的最基础的一个程序。

硬件电路如下:

STM32F101CBT6---GPIO练习 - 小文 - 小文电子设计

 

STM32F101CBT6---GPIO练习 - 小文 - 小文电子设计

 

STM32F101CBT6---GPIO练习 - 小文 - 小文电子设计
 
 Keil编译环境和J-LINK调试器配置
STM32F101CBT6---GPIO练习 - 小文 - 小文电子设计
 
STM32F101CBT6---GPIO练习 - 小文 - 小文电子设计
 
要用GPIO首先需要熟悉具体寄存器配置,具体看STM32F101xx  Reference manual

 源程序:

///////////////////////////////////////////////
// Study  for     STM32 
// 芯片型号:   STM32F101CBT6
// 编译环境:   Keil-uVision4
// 调试器  :    J-LINK
// 程序名称:   I/O控制LED闪烁     
// 作者:         ClimberWin   
// 编写日期 :  2011年04月19日            
////////////////////////////////////////////////

//引脚定义 PB12->LED

#include         /*库文件的调用 */            
#include       /*数学计算库文件的调用 */ 

#define LED (1<<12) // PB12 //端口定义


void delayms(int ms);  //延时程序
void RCC_DeInit(void); //时钟初始化程序
void GPIO_init(void);  //GPIO初始化程序


/***延时程序***/
void delayms(int ms)  
{
   int a;
   while(ms--)
   {
     for(a=0; a<2000; a++)
     {;}
   }
}
/****************************************/

/////////////////////////////////////////
//GPIO初始化
void GPIO_init(void)
{

RCC->APB2ENR|=1<<3;    //使能PORTB时钟  将 RCC_APB2ENR的位3置1,其他不变 Page95/995  of RM0008 Reference manual
/*Each of the general-purpose I/O ports has                     Page138/995  of RM0008 Reference manual
two 32-bit configuration registers (GPIOx_CRL, GPIOx_CRH), 
two 32-bit data registers (GPIOx_IDR, GPIOx_ODR)
a 32-bit set/reset register (GPIOx_BSRR)
a 16-bit reset register (GPIOx_BRR)
a 32-bit locking register (GPIOx_LCKR).
*/
GPIOB->CRH&=0XFFF000FF;        //   Port configuration register high (GPIOx_CRH) (x=A..G)
GPIOB->CRH|=0X00030000;           //PB12设置为通用推挽输出      
GPIOB->ODR=0X00001000;           //PB12 输出高   Port output data register (GPIOx_ODR) (x=A..G)

}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//时钟初始化程序
void RCC_DeInit(void)
{            
RCC->APB2RSTR = 0x00000000;//外设复位    
RCC->APB1RSTR = 0x00000000;      
RCC->AHBENR   = 0x00000014; //时钟使能寄存器    FLITF时钟,SRAM时钟使能    Page93/995  of RM0008 Reference manual
RCC->APB2ENR  = 0x00000000; //外设时钟关闭.               Page95/995  of RM0008 Reference manual
RCC->APB1ENR  = 0x00000000;   
RCC->CR |= 0x00000001;     //HSION=1;内部高速时钟使能(Internal 8 MHz RC )     Page83/995  of RM0008 Reference manual           
RCC->CFGR &= 0xF88FFFFF;   //Clock configuration register                     Page84/995  of RM0008 Reference manual    
RCC->CR &= 0xFEF2FFFF;     //HSEON,HSEBYP,CSSON,PLLON置0      
RCC->CIR = 0x00000000;     //Clock interrupt register disenable            Page87/995  of RM0008 Reference manual    
}

 


///////////////////////////////主程序////////////////////////////////////////
main (void)        

   RCC_DeInit();
   GPIO_init();
 while(1)
 {
   GPIOB->ODR=0X00001000;    //PB12 输出高   
   delayms(500);
   GPIOB->ODR=0X00000000;    //PB12 输出低   
   delayms(500);
 }


 }

关键字:STM32F101CBT6  GPIO 引用地址:STM32F101CBT6---GPIO练习

上一篇:STM32F103V---固件库使用---GPIO
下一篇:使用SAM-BA和RomBoot烧写at91sam7s64

推荐阅读最新更新时间:2024-03-16 15:08

[CortexM0--stm32f0308]关于GPIO
问题描述:GPIO对于每颗MCU都需要了解,常见的如LED和Button的控制,GPIO就是用来供MCU输入和输出用。 GPIO简述:STM32的ARM CortexM 系列IC的GPIO设计应当大体相同,其他家的GPIO做法会不一样,GPIO也是由电路构成,不同的IC厂商会有自己的hardware电路的具体实现,包括开出的register和peripheral map都会不同。STM的IC推广很好,对于其GPIO的了解,大体流程以及基本的概念和其他家的都会是相通的,会大有裨益。 这款IC的GPIO对所有pin用port来归类,PortA,PortB等,每一组port有基本的register: 4个配置寄存器:GP
[单片机]
【跟着江科大学Stm32】GPIO_LED_流水灯_蜂鸣器
一、LED闪烁 #include stm32f10x.h // Device header #include Delay.h int main(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Spe
[单片机]
【跟着江科大学Stm32】<font color='red'>GPIO</font>_LED_流水灯_蜂鸣器
如何测量MSP430的功耗
众所周知,MSP430以其超低功耗而著称。但是很多用户反应,在实际应用中,测量MSP430的功耗时,测量结果和MSP430数据手册相差甚远。其实这里主要涉及到两方面的内容: 1. 如何使用MSP430合理的设计硬件和软件,使整个应用最大限度的达到低功耗? 2. 如何测量MSP430的功耗? 就如何测量MSP430功耗,我来分享一下我个人的经验。 一、未使用的GPIO的处理 为了使MSP430最大限度的达到低功耗,对于MSP430未使用的GPIO而言,应该将其设置为输出;或者是设置为输入,但是将管脚的电平固定,可以通过外部电路将管脚连接至Vcc或者GND,也可使能内部上下拉电阻,将管脚电平固定。 对于MSP430而言,大部分
[单片机]
如何测量MSP430的功耗
STM8与汇编语言(5)
上一次的实验程序,完成了LED指示灯的驱动,用到了GPIO的输出方式,这一次要用GPIO的输入方式,进行按键的输入。下面的代码是读入按键值,如果按键按下,则点亮LED,否则熄灭LED。 利用ST的开发工具,生成一个汇编程序的框架,然后修改其中的main.asm,修改后的代码如下。 编译通过后,下载到开发板,运行程序,可以看到当按下按键时,LED1点亮,当抬起按键时,LED1熄灭。 stm8/ #include mapping.inc ; 涉及到的硬件资源 ; LED1定义在PD3 ; KEY1定义在PD7 ; 下面定义端口D的寄存器地址 PD_ODR EQU $500f PD_IDR E
[单片机]
物联网之STM32开发二(GPIO口操作)
STM32—GPIO操作(基于STM32F051开发板) 内容概述: GPIO的基本概念及寄存器介绍 照亮电子世界的那盏灯——LED寄存器版 照亮电子世界的那盏灯——LED库函数版 初识人机交互——按键 GPIO的基本概念及寄存器介绍: 内容概述: GPIO接口简介 GPIO功能复用 GPIO寄存器介绍 GPIO接口简介: 通用输入输出接口GPIO是嵌入式系统、单片机开发过程中最常用的接口,用户可以通过编程灵活的对接口进行控制,实现对电路板上LED、数码管、按键等常用设备控制驱动,也可以作为串口的数据收发管脚,或AD的接口等复用功能使用。因此其作用和功能是非常重要的。 GPIO功能
[单片机]
物联网之STM32开发二(<font color='red'>GPIO</font>口操作)
STM32F1x系列——GPIO操作
GPIO 即通用输入输出口。凡事都要熟悉,熟能生巧。一定要掌握MDK软件的工程操作方法。 对于GPIO的操作。 Project里面要有以下几个文件夹(开发之前需要包含相应的库文件,这里默认已经包含) STEP BY STEP(以按键和LED灯为例): 1.在USER文件夹里新建对应功能的C文件和H文件(这里对应 Key.c Key.h LED.c LED.h)其中C文件用来进行对应外设的硬件配置,H文件是申明对应C文件里面定义的配置函数。注意H文件开头要检查以下时候需要检查以下重复定义的情况, 如下: #ifndef __EXTI_H #define __EXTI_H 2.下面重点总结下功能C文件里面对应
[单片机]
STM32F1x系列——<font color='red'>GPIO</font>操作
STM8固件库GPIO学习笔记
1、STM8的寄存器映射 STM8 core采用了哈佛结构,有两条总线分别用于访问Flash和RAM,但Flash,RAM,GPIO and peripheral registers都被映射到了线性的16Mbyte(24位地址)的存储器空间中;stm8s208rb的GPIO and peripheral registers被映射到了0x00 5000 ~ 0x00 57FF地址空间。所以要在C语言中访问外围设备寄存器我们只需要指向这些地址空间的指针即可了。 2、STM8的寄存器的地址 在STM8中,与某个外围设备有关的寄存器在地址上都是顺序排列的;比如与GPIO有关的寄存器有ODR、IDR、DDR、CR1、CR2,与PA口有
[单片机]
STM32备忘——GPIO的几种模式
GPIO的模式学习 GPIO的综合描述 讲述的内容比较详细 输出模式通常使用推挽输出模式:GPIO_Mode_Out_PP 只有使用输出模式时才能设置频率:GPIO_Speed 使用串口通常使用复用模式: 选择IO接口工作方式: GPIO_Mode_AIN 模拟输入 GPIO_Mode_IN_FLOATING 浮空输入 //USART串口通信输入模式 GPIO_Mode_IPD 下拉输入 //按键的输入 GPIO_Mode_IPU 上拉输入 //按键的输入 GPIO_Mode_Out_PP 推挽输出 //GPIO引脚输出模式 GPIO_Mode_Out_OD 开漏输出 GPIO_Mode_AF_PP 复用推
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved