STM8_GPIO 上拉输入
时间:12-03
来源:互联网
点击:
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 实验平台: ST 官方三合一套件
+ 硬件 : STM8S105S6T6C
+ 开发平台: IAR For STM8 1.10
+ 仿真器 : ST-Link
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
#include "stm8s.h"
/*******************************************************************************
* ==时钟初始化函数==
* CLK_DeInit(); --> 复位时钟寄存器
* CLK_HSICmd(ENABLE); --> 使能内部高速时钟
* CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIdiv2); --> 配置内部高速时钟(时钟分频器:2分频)
* CLK_ClockSecuritySystemEnable(); --> 开启时钟安全系统
*******************************************************************************/
voidCLK_INIT(void)
{
CLK_DeInit();
CLK_HSICmd(ENABLE);
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIdiv2);
CLK_ClockSecuritySystemEnable();
}
/*******************************************************************************
* ==I/O口初始化函数==
* GPIO_DeInit(); --> 复位I/O端口 D
* GPIO_Init(GPIOD , GPIO_PIN_7 , GPIO_MODE_IN_FL_NO_IT);
--> 使能PORTD_7, 设置为 输入 ,上拉 ,不带中断
* GPIO_Init(GPIOD , GPIO_PIN_0 , GPIO_MODE_OUT_PP_LOW_SLOW);
--> 使能PORTD_0, 设置为 输出,推挽式 ,低电平 ,低速率
*******************************************************************************/
voidGPIO_INIT(void)
{
GPIO_DeInit(GPIOD);
GPIO_Init(GPIOD,GPIO_PIN_7,GPIO_MODE_IN_PU_NO_IT);// KEY
GPIO_Init(GPIOD,GPIO_PIN_0,GPIO_MODE_OUT_PP_LOW_SLOW);// LED
}
/*******************************************************************************
* ==MAIN 函数==
* 初始化 时钟
* 初始化 端口
* 按下按键LED亮,松开按键则LED灭
*******************************************************************************/
voidmain(void)
{
CLK_INIT();
GPIO_INIT();
while(1)
{
if(GPIO_ReadInputPin(GPIOD,GPIO_PIN_7)==0)
{
GPIO_WriteHigh(GPIOD,GPIO_PIN_0);
}
else
{
GPIO_WriteLow(GPIOD,GPIO_PIN_0);
}
}
}
+ 实验平台: ST 官方三合一套件
+ 硬件 : STM8S105S6T6C
+ 开发平台: IAR For STM8 1.10
+ 仿真器 : ST-Link
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
#include "stm8s.h"
/*******************************************************************************
* ==时钟初始化函数==
* CLK_DeInit(); --> 复位时钟寄存器
* CLK_HSICmd(ENABLE); --> 使能内部高速时钟
* CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIdiv2); --> 配置内部高速时钟(时钟分频器:2分频)
* CLK_ClockSecuritySystemEnable(); --> 开启时钟安全系统
*******************************************************************************/
voidCLK_INIT(void)
{
CLK_DeInit();
CLK_HSICmd(ENABLE);
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIdiv2);
CLK_ClockSecuritySystemEnable();
}
/*******************************************************************************
* ==I/O口初始化函数==
* GPIO_DeInit(); --> 复位I/O端口 D
* GPIO_Init(GPIOD , GPIO_PIN_7 , GPIO_MODE_IN_FL_NO_IT);
--> 使能PORTD_7, 设置为 输入 ,上拉 ,不带中断
* GPIO_Init(GPIOD , GPIO_PIN_0 , GPIO_MODE_OUT_PP_LOW_SLOW);
--> 使能PORTD_0, 设置为 输出,推挽式 ,低电平 ,低速率
*******************************************************************************/
voidGPIO_INIT(void)
{
GPIO_DeInit(GPIOD);
GPIO_Init(GPIOD,GPIO_PIN_7,GPIO_MODE_IN_PU_NO_IT);// KEY
GPIO_Init(GPIOD,GPIO_PIN_0,GPIO_MODE_OUT_PP_LOW_SLOW);// LED
}
/*******************************************************************************
* ==MAIN 函数==
* 初始化 时钟
* 初始化 端口
* 按下按键LED亮,松开按键则LED灭
*******************************************************************************/
voidmain(void)
{
CLK_INIT();
GPIO_INIT();
while(1)
{
if(GPIO_ReadInputPin(GPIOD,GPIO_PIN_7)==0)
{
GPIO_WriteHigh(GPIOD,GPIO_PIN_0);
}
else
{
GPIO_WriteLow(GPIOD,GPIO_PIN_0);
}
}
}
STM8GPIO上拉输 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)