- #include "main.h"
- /* 修改主频 请修改 CMSIS标准文件 system_MKxxxx.c 中的 CLOCK_SETUP 宏 */
- /* GPIO 工作模式 */
- /*
- * @arg kGPIO_Mode_IFT :悬空输入
- * @arg kGPIO_Mode_IPD :下拉输入
- * @arg kGPIO_Mode_IPU :上拉输入
- * @arg kGPIO_Mode_OOD :开漏输出 如果不清楚这2种输出的区别请 百度..
- * @arg kGPIO_Mode_OPP :推挽输出
- */
-
-
- int main(void)
- {
-
- /* 初始化Delay */
- DelayInit();
-
- /* 使用简易初始化初始化PTB端口的22引脚作为IO使用 设置为推挽输出模式 */
- // GPIO_QuickInit(HW_GPIOB, 22, kGPIO_Mode_OPP);
-
- //使用结构体初始化
- GPIO_InitTypeDef GPIO_InitStruct;
- GPIO_InitStruct.instance = HW_GPIOB;
- GPIO_InitStruct.mode = kGPIO_Mode_OPP;
- GPIO_InitStruct.pinx = GPIO_Pin_22;
- GPIO_Init(&GPIO_InitStruct);
-
- GPIO_QuickInit(HW_GPIOB, GPIO_Pin_21, kGPIO_Mode_OPP);
- GPIO_QuickInit(HW_GPIOE, GPIO_Pin_26, kGPIO_Mode_OPP);
-
- //PTA上拉输入
- GPIO_QuickInit(HW_GPIOA,GPIO_Pin_4, kGPIO_Mode_IPU);
-
- GPIO_QuickInit(HW_GPIOC,GPIO_Pin_6, kGPIO_Mode_IPU);
-
- /* 控制PTB端口的21引脚输出低电平 */
- GPIO_WriteBit(HW_GPIOB,GPIO_Pin_22, 1);
- GPIO_WriteBit(HW_GPIOB, 21, 0);
- GPIO_SetBit(HW_GPIOE, GPIO_Pin_26);
-
- while(1)
- {
- if(GPIO_ReadBit(HW_GPIOA,GPIO_Pin_4) == 0)
- {
- DelayMs(5);
- if(GPIO_ReadBit(HW_GPIOA,GPIO_Pin_4) == 0)
- GPIO_ResetBit(HW_GPIOE, GPIO_Pin_26);
- }
- if(GPIO_ReadBit(HW_GPIOC,GPIO_Pin_6) == 0)
- {
- DelayMs(5);
- if(GPIO_ReadBit(HW_GPIOC,GPIO_Pin_6) == 0)
- GPIO_SetBit(HW_GPIOE, GPIO_Pin_26);
- }
- /* 翻转引脚电平 原来是低变成高 原来是高变成低 */
- GPIO_ToggleBit(HW_GPIOB, GPIO_Pin_21);
- GPIO_ToggleBit(HW_GPIOB, 22);
- DelayMs(500);
- }
- }
|