四川建设网网站,php在线编辑器,衡水做wap网站多少钱,如何下载海外app目录硬知识IO口初始化函数测试main.c实验现象STC实验箱4 IAP15W4K58S4 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 硬知识
摘自《STC库函数使用参考》
IO口初始化函数
GPIO_Inilize GPIO_InitTypeDef的定义见于文件GPIO.H。
typede…
目录硬知识IO口初始化函数测试main.c实验现象STC实验箱4 IAP15W4K58S4 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 硬知识
摘自《STC库函数使用参考》
IO口初始化函数
GPIO_Inilize GPIO_InitTypeDef的定义见于文件GPIO.H。
typedef struct
{u8 Mode;u8 Pin; //要设置的端口
}GPIO_InitTypeDef;Mode配置IO的模式取值见下表 Pin要配置的某一个回多个IO取值见下表 以上参数可以使用或运算比如
GPIO_InitStructure.Pin GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_7;测试 main.c
P1.7、P1.6、P4.7、P4.6流水灯P3.2、P3.3按键改变方向。
#include ./Drivers/config.h
#include ./Drivers/delay.h#include ./Drivers/GPIO.hvoid GPIO_config(void)
{GPIO_InitTypeDef GPIO_InitStructure; //结构定义GPIO_InitStructure.Mode GPIO_OUT_PP; //指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PPGPIO_InitStructure.Pin GPIO_Pin_6 | GPIO_Pin_7; //指定要初始化的IO, 或操作GPIO_Inilize(GPIO_P1,GPIO_InitStructure); //P1.6、P1.7初始化为推挽输出GPIO_Inilize(GPIO_P4,GPIO_InitStructure); //P4.6、P4.7初始化为推挽输出GPIO_InitStructure.Pin GPIO_Pin_2 | GPIO_Pin_3; //指定要初始化的IO, 或操作GPIO_InitStructure.Mode GPIO_PullUp; //指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PPGPIO_Inilize(GPIO_P3,GPIO_InitStructure); //P3.2、P3.3初始化为上拉输入P32 1;P33 1;
}void main(void)
{u8 Dir_Flag 0;u8 LED_Port 0;u8 i 0;GPIO_config();while(1){if (P32 0){delay_ms(20);if (P32 0){Dir_Flag 0;}while (P32 0);}if (P33 0){delay_ms(20);if (P33 0){Dir_Flag 1;}while (P33 0);}if (Dir_Flag){LED_Port 1;if ((LED_Port 0x0f) 0x00)LED_Port 0x08;}else{LED_Port 1;if ((LED_Port 0x0f) 0x00)LED_Port 0x01;}P17 (((~LED_Port) 0x01) ! 0);P16 (((~LED_Port) 0x02) ! 0);P47 (((~LED_Port) 0x04) ! 0);P46 (((~LED_Port) 0x08) ! 0);i 25;while (P32 P33 i--)delay_ms(20);}
}实验现象