【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"。
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.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相关推荐
- 【STC15库函数上手笔记】10、EEPROM
目录 硬件知识 基本介绍 软件知识 EEPROM多字节读函数 EEPROM多字节写函数 EEPROM扇区擦除函数函数 测试 main.c 实验现象 STC实验箱4 IAP15W4K58S4 Keil ...
- 【STC15库函数上手笔记】9、硬件SPI
目录 硬件知识 库函数 spi.c spi.h 测试 main.c 实验现象 STC实验箱4 IAP15W4K58S4 Keil uVision V5.29.0.0 PK51 Prof.Develop ...
- 【STC15库函数上手笔记】7、PCA与PWM
目录 硬知识 硬件知识 CCP/PWM/PCA模块的结构 软件知识 PCA初始化函数 PWM更新占空比函数 测试程序 PWM模式产生PWM信号 main.c 实验现象 16位软件定时器模式模式产生PW ...
- 【STC15库函数上手笔记】8、比较器
目录 库函数 compare.c compare.h STC15Fxxxx.H 测试程序 main.c STC实验箱4 IAP15W4K58S4 Keil uVision V5.29.0.0 PK51 ...
- 【STC15库函数上手笔记】5、定时器
目录 硬知识 定时器初始化函数 测试 基本功能测试 main.c 中断服务函数 实验现象 模拟PWM信号 main.c 实验现象 STC实验箱4 IAP15W4K58S4 Keil uVision V ...
- 【STC15库函数上手笔记】3、外部中断
目录 硬知识 外中断初始化函数 测试 main.c Exti.c STC实验箱4 IAP15W4K58S4 Keil uVision V5.29.0.0 PK51 Prof.Developers Ki ...
- 【STC15库函数上手笔记】1、建立工程
目录 新建工程 添加文件到工程中 main.c 时钟 STC实验箱4 IAP15W4K58S4 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Vers ...
- 【STC15库函数上手笔记】6、ADC
目录 硬知识 ADC初始化函数 ADC电源控制函数 ADC查询转换函数 测试 main.c 实验现象 STC实验箱4 IAP15W4K58S4 Keil uVision V5.29.0.0 PK51 ...
- 【STC15库函数上手笔记】4、USART串口
目录 硬知识 串口初始化函数 串口1写缓冲函数 串口2写缓冲函数 串口1写数据块函数 串口2写数据块函数 模拟串口字节发送函数 模拟串口写数据块函数 测试 硬件串口 模拟串口 soft_uart.c ...
最新文章
- 使用OpenCV为视频中美女加上眼线
- python语言的理念_python之禅--理念
- WPF TreeView HierarchicalDataTemplate
- 运维人员的补丁盛宴 四月修复微软Adobe漏洞合计过百!
- StackExchange.Redis通用封装类分享(转)
- 电大计算机应用基础试卷号2007,电大计算机应用基础(试卷版)计算机试卷7.doc...
- 10. VMware Tools 安裝
- linux下asm磁盘查看,ASM磁盘空间的查看
- Xcode 12 引用缺失包:libstdc++.tbd libstdc++.6.tbd libstdc++.6.0.9.tbd 等
- grep awk sed 练习题
- 对《Java编程思想》读者的一点建议
- JS 实现小游戏 打砖块
- phpcms php5.5,phpcms_v9.5.8_GBK源码下载
- 域用户如何更改计算机名,加入域后的计算机,怎么改计算机名?
- 大数据多租户的概念_大数据平台 多租户
- python3.4勾股定理代码_用于解答算法题目的Python3代码框架
- 时隔一年才发现嵌入式到底指的是什么
- erron变量、strerror函数 和 perror 函数
- 关于服务器被入侵+植入病毒木马
- 用‘+‘替换字符串中的所有空格[复制]
热门文章
- spring-test的简单实用方式
- ny12 喷水装置(二)
- spotify歌曲下载_使用Spotify数据预测哪些“ Novidades da semana”歌曲会成为热门歌曲
- leetcode面试题 16.26. 计算器(栈)
- 前端开发有哪些技术栈要掌握_为什么要掌握前端开发的这四个主要概念
- 软件测试测试用例编写_不要先编写所有软件测试-只需编写一个
- vuex构建vue项目_如何使用Vue.js,Vuex,Vuetify和Firebase构建单页应用程序
- 神秘的数组初始化_图像识别神秘化
- 爬虫结果数据完整性校验
- Linux虚拟机安装应用程序提示Graphical installers are not supported by the vm