原创 STM32基础控制------GPIO

2013-12-31 15:39 1334 12 12 分类: MCU/ 嵌入式

继续上次的话题,今天主要还是用到了STM32的GPIO控制功能,把我自己配件好的CODE

上传下,和大家分享下我对STM32编程的体验,以后会陆陆续续的上传源代码。

希望大家多多交流

/*STM32 GPIO的输出和输入设定*/
typedef union DataFormat
{
 struct
 {
   unsigned int value0 :1;
   unsigned int value1 :1;
   unsigned int value2 :1;
   unsigned int value3 :1;
   unsigned int value4 :1;
   unsigned int value5 :1;
   unsigned int value6 :1;
   unsigned int value7 :1;
 }Data;
 long Access;
};定义一个输出输入结构体
/***********************/
/*GPIO的设定函数*/
/*用户直接使用这个函数*/

void GPIO_Config(void)
{
 GPIO_InitTypeDef      GPIO_InitStructure;   /*定义一个GPIO结构体*/
 union DataFormat*    InputPin_Value;        /*定义输入结构体指针*/
 union DataFormat*    OutputPin_Value;      /*定义输出结构体指针*/

 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); 

/*使能GPIO时钟,配置到APB2时钟上*/
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_6;   /*配置IO*/
 GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz;     /*配置50MHZ*/
 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;       /*数据输出方式*/
 GPIO_Init(GPIOA,&GPIO_InitStructure);  

/*初始化A_IO,把 GPIO_InitStructure的地址分配给GPIO_Init函数*/
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG,ENABLE);

  /* 使能GPIO时钟,配置到APB2时钟上*/
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; /*配置IO*/
 GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz;  /*配置50MHZ*/
 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;   /*下拉输入*/
 GPIO_Init(GPIOG,&GPIO_InitStructure);

 GPIO_SetBits(GPIOA,GPIO_Pin_5);     /*输出高电平*/
 GPIO_ResetBits(GPIOA,GPIO_Pin_6);   /*输出低电平*/
 GPIO_PinLockConfig(GPIOA,GPIO_Pin_5|GPIOA_Pin_6); 

/*锁存GPIO数据,现在GPIO端口有锁存器作用*/

 OutputPin_Value->Data.value5=GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_5); 

/*读出A中Pin5数据*/
 OutputPin_Value->Data.value6=GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_6); 

/*读出A中Pin6数据*/
 OutputPin_Value->Access=GPIO_ReadOutputData(GPIOA);        /*读出A中所有数据*/
 GPIO_EXTLineConfig(GPIO_PortSource_GPIOG,GPIO_PinSource7); 

/*G中Pin7 设置成外部中断方式*/
 InputPin_Value->Data.value7=GPIO_ReadInputDataBit(GPIOG,GPIO_Pin_7); 

/*读出 G中Pin7中的值*/

}

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
12
关闭 站长推荐上一条 /3 下一条