在STM32芯片上,IO引脚可以用软件设置为不同的功能(如输入或输出),要实现这些功能必须配置相应的寄存器,具体概括为:
1:配置寄存器:设定GPIO的特定功能,如最基本输入or 输出。
2:数据寄存器:保存GPIO输入or输出的电平高低。
3:位控制寄存器:设置某引脚的高低电平。
4:锁定寄存器:锁定某引脚的配置。
以下基于固件库开发的GPIO程序,点亮CUP板上的LED1、LED2、LED3、LED4。
/************************************************************************************
*函数名:GPIO_Config
*描述:通过配置STM32的GPIO,点亮LED1、LED2、LED3、LED4
*输入:NULL
*输出:NULL
*作者:盛鼎测控之工作室
**************************************************************************************/
void GPIO_Config(void)
{
/* 定义GPIO初始化结构体对象*/
GPIO_InitTypeDef GPIO_InitStructure ;
/* 开启GPIO的外部时钟*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
/* 配置要用到GPIO引脚*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7 |GPIO_Pin_8 |GPIO_Pin_9;
/* 设置GPIO引脚的模式*/
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
/* 设置GPIO引脚的速度*/
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
/* 初始化GPIOC*/
GPIO_Init(GPIOC,&GPIO_InitStructure);
/*开机时所有LED处于熄灭状态*/
GPIO_ResetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_7 |GPIO_Pin_8 |GPIO_Pin_9);
}
/****************************************************************************************************
*函数名:main
*描述:在main函数中通过调用LED函数,点亮或熄灭LED
*输入:NULL
*输出:NULL
*作者:盛鼎测控科技之工作室
*******************************************************************************************************/
int main(void)
{
GPIO_Config();
while (1){
LED1(ON);
Delay(0x0FFFEF);
LED1(OFF);
LED2(ON);
Delay(0x0FFFEF);
LED2(OFF);
LED3(ON);
Delay(0x0FFFEF);
LED3(OFF);
LED4(ON);
Delay(0x0FFFEF);
LED4(OFF);
}
}
专注于最新测试仪器仪表(测试机)研发、生产、销售.
应用领域:线材测试、安规测试(高压测试)、变压器测试(LCR Meter)、PCB低阻测试、电源系统测试。
淘宝小店:http://shop72422917.taobao.com
有意者QQ:148208292