【STC15库函数上手笔记】2、GPIO
生活随笔
收集整理的這篇文章主要介紹了
【STC15库函数上手笔记】2、GPIO
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 硬知識
- 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"。
Mode:配置IO的模式,取值見下表:
Pin:要配置的某一個回多個IO,取值見下表:
以上參數可以使用或運算,比如:
測試
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.h"void 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);} }實驗現象
總結
以上是生活随笔為你收集整理的【STC15库函数上手笔记】2、GPIO的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html 字体样式及结果,css fon
- 下一篇: dwr 写的小程序,配置