stm8gpio库函数笔记
更新时间:2024-03-16 18:21:01 阅读量: 综合文库 文档下载
STM8库函数学习笔记之GPIO
【整理者】61ic.com 【提供者】885783
【详细说明】STM8库函数学习笔记之GPIO
STM8库函数学习笔记之GPIO
作者:BH7KQK 日期:2010.12.30
相关的函数:
void GPIO_DeInit(GPIO_TypeDef* GPIOx);
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin, GPIO_Mode_TypeDef
GPIO_Mode);
void GPIO_Write(GPIO_TypeDef* GPIOx, u8 PortVal);
void GPIO_WriteHigh(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef PortPins); void GPIO_WriteLow(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef PortPins); void GPIO_WriteReverse(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef PortPins);
u8 GPIO_ReadInputData(GPIO_TypeDef* GPIOx); u8 GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);
BitStatus GPIO_ReadInputPin(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin); void GPIO_ExternalPullUpConfig(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin,
FunctionalState NewState);
//---------------------------------------------------------------------------------------
void GPIO_DeInit(GPIO_TypeDef* GPIOx);
这个函数用来恢复指定端口的寄存器ODR、DDR、CR1及CR2到默认值0x00,即无中断功能
的浮动输入,无返回值。
参数:
GPIOx: GPIOA到GPIOI可选。
示例: 恢复GPIOB的相应寄存器为默认值
GPIO_DeInit(GPIOB);
//---------------------------------------------------------------------------------------
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin, GPIO_Mode_TypeDef
GPIO_Mode);
这个函数用来配置指定端口的各个引脚功能,无返回值。
参数:
GPIOx: 端口GPIOA到GPIOI可选。
GPIO_Pin: 要初始化的引脚,可以用“或”方式选择多个引脚,
可选值:
GPIO_PIN_0 选择 0 引脚 GPIO_PIN_1 选择 1 引脚 GPIO_PIN_2 选择 2 引脚 GPIO_PIN_3 选择 3 引脚 GPIO_PIN_4 选择 4 引脚 GPIO_PIN_5 选择 5 引脚 GPIO_PIN_6 选择 6 引脚 GPIO_PIN_7 选择 7 引脚
GPIO_PIN_LNIB 低四位引脚选择,即同时选择PIN_0到PIN_3。 GPIO_PIN_HNIB 高四位引脚选择,即同时选择PIN_4到PIN_7。 GPIO_PIN_ALL 选择全部引脚,即同时选择PIN_0到PIN_7。
GPIO_Mode:工作模式。
可选值:
GPIO_MODE_IN_FL_NO_IT 无中断功能的浮动输入。 GPIO_MODE_IN_PU_NO_IT 无中断功能的上拉输入。 GPIO_MODE_IN_FL_IT 带中断功能的浮动输入。 GPIO_MODE_IN_PU_IT 带中断功能的上拉输入。
GPIO_MODE_OUT_OD_LOW_FAST 高速开漏低电平输出,可工作到10MHz。 GPIO_MODE_OUT_PP_LOW_FAST 高速推挽低电平输出,可工作到10MHz。 GPIO_MODE_OUT_OD_LOW_SLOW 低速开漏低电平输出,可工作到2MHz。 GPIO_MODE_OUT_PP_LOW_SLOW 低速推挽低电平输出,可工作到2MHz。 GPIO_MODE_OUT_OD_HIZ_FAST 高速开漏高阻态输出,可工作到10MHz。
GPIO_MODE_OUT_PP_HIGH_FAST 高速推挽高电平输出,可工作到10MHz。 GPIO_MODE_OUT_OD_HIZ_SLOW 低速开漏高阻态输出,可工作到2MHz。 GPIO_MODE_OUT_PP_HIGH_SLOW 低速推挽高电平输出,可工作到2MHz。
示例: 把GPIOB的引脚0、1、4配置为高速推挽高电平输出。 GPIO_Init(GPIOB, (GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_4),
GPIO_MODE_OUT_PP_HIGH_FAST);
//---------------------------------------------------------------------------------------
void GPIO_Write(GPIO_TypeDef* GPIOx, u8 PortVal); 这个函数用来输出一个八位的值到指定的端口,无返回值。
所需条件:该端口必须配置为输出模式。
参数:
GPIOx:端口GPIOA到GPIOI可选。
PortVal:为无符号8位数值。
示例: 端口B输出0x22。 GPIO_Write(GPIOB, 0x22);
//---------------------------------------------------------------------------------------
void GPIO_WriteHigh(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef PortPins); 这个函数用来置位指定端口的一个或多个引脚,即置相应引脚输出为高电平,无返回值。
所需条件:该端口必须配置为输出模式。
参数:
GPIOx:端口GPIOA到GPIOI可选。
PortPins: 要置位引脚,可以用“或”方式选择多个引脚,
可选值:
GPIO_PIN_0 选择 0 引脚
GPIO_PIN_1 选择 1 引脚 GPIO_PIN_2 选择 2 引脚 GPIO_PIN_3 选择 3 引脚 GPIO_PIN_4 选择 4 引脚 GPIO_PIN_5 选择 5 引脚 GPIO_PIN_6 选择 6 引脚 GPIO_PIN_7 选择 7 引脚
GPIO_PIN_LNIB 低四位引脚选择,即同时选择PIN_0到PIN_3。 GPIO_PIN_HNIB 高四位引脚选择,即同时选择PIN_4到PIN_7。 GPIO_PIN_ALL 选择全部引脚,即同时选择PIN_0到PIN_7。
示例: 把GPIOB的引脚0和引脚3置位。
GPIO_WriteHigh(GPIOB, (GPIO_PIN_0 | GPIO_PIN_3));
//---------------------------------------------------------------------------------------
void GPIO_WriteLow(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef PortPins);
这个函数用来复位指定端口一个或多个引脚的电平,即置相应引脚输出为低电平,无返回值。
所需条件:该端口必须配置为输出模式。
参数:
GPIOx:端口GPIOA到GPIOI可选。
PortPins: 要复位引脚,可以用“或”方式选择多个引脚,
可选值:
GPIO_PIN_0 选择 0 引脚 GPIO_PIN_1 选择 1 引脚 GPIO_PIN_2 选择 2 引脚 GPIO_PIN_3 选择 3 引脚 GPIO_PIN_4 选择 4 引脚 GPIO_PIN_5 选择 5 引脚 GPIO_PIN_6 选择 6 引脚 GPIO_PIN_7 选择 7 引脚
GPIO_PIN_LNIB 低四位引脚选择,即同时选择PIN_0到PIN_3。 GPIO_PIN_HNIB 高四位引脚选择,即同时选择PIN_4到PIN_7。
GPIO_PIN_ALL 选择全部引脚,即同时选择PIN_0到PIN_7。
示例: 把GPIOB的引脚0和引脚3置为低电平。 GPIO_WriteLow(GPIOB, (GPIO_PIN_0 | GPIO_PIN_3));
//---------------------------------------------------------------------------------------
void GPIO_WriteReverse(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef PortPins); 这个函数用来取反指定端口的一个或多个引脚的电平状态,如果当前该引脚为高电平则置为
低电平,如果为低电平则置为高电平,无返回值。
所需条件:该端口必须配置为输出模式。
参数:
GPIOx:端口GPIOA到GPIOI可选。
PortPins: 要取反的引脚,可以用“或”方式选择多个引脚。
可选值:
GPIO_PIN_0 选择 0 引脚 GPIO_PIN_1 选择 1 引脚 GPIO_PIN_2 选择 2 引脚 GPIO_PIN_3 选择 3 引脚 GPIO_PIN_4 选择 4 引脚 GPIO_PIN_5 选择 5 引脚 GPIO_PIN_6 选择 6 引脚 GPIO_PIN_7 选择 7 引脚
GPIO_PIN_LNIB 低四位引脚选择,即同时选择PIN_0到PIN_3。 GPIO_PIN_HNIB 高四位引脚选择,即同时选择PIN_4到PIN_7。 GPIO_PIN_ALL 选择全部引脚,即同时选择PIN_0到PIN_7。
示例: 取反GPIOB的引脚0和引脚3的电平状态。 GPIO_WriteReverse(GPIOB, (GPIO_PIN_0 | GPIO_PIN_3));
//---------------------------------------------------------------------------------------
u8 GPIO_ReadInputData(GPIO_TypeDef* GPIOx);
这个函数用来读取指定端口的数据,返回一个八位无符号值。
所需条件:该端口必须配置为输入模式。
参数:
GPIOx:端口GPIOA到GPIOI可选。
示例:读取端口A的数值。
u8 r_data;
r_data = GPIO_ReadInputData(GPIOA);
//---------------------------------------------------------------------------------------
u8 GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);
这个函数用来读取指定端口的输出寄存器的数据,返回一个八位无符号值。
参数:
GPIOx:端口GPIOA到GPIOI可选。
示例:读取端口A的输出寄存器的数值。
u8 r_data;
r_data = GPIO_ReadOutputData(GPIOA);
//---------------------------------------------------------------------------------------
BitStatus GPIO_ReadInputPin(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin);
这个函数用来读取指定端口一个或多个引脚状态,任意一个引脚为高电平侧返回SET,否则
返回RESET。
所需条件:该端口必须配置为输入模式。
参数:
GPIOx:端口GPIOA到GPIOI可选。
GPIO_Pin: 要读取状态的引脚,可以用“或”方式选择多个引脚,
可选值:
GPIO_PIN_0 选择 0 引脚 GPIO_PIN_1 选择 1 引脚 GPIO_PIN_2 选择 2 引脚 GPIO_PIN_3 选择 3 引脚 GPIO_PIN_4 选择 4 引脚 GPIO_PIN_5 选择 5 引脚 GPIO_PIN_6 选择 6 引脚 GPIO_PIN_7 选择 7 引脚
GPIO_PIN_LNIB 低四位引脚选择,即同时选择PIN_0到PIN_3。 GPIO_PIN_HNIB 高四位引脚选择,即同时选择PIN_4到PIN_7。 GPIO_PIN_ALL 选择全部引脚,即同时选择PIN_0到PIN_7。
示例: 读取GPIOB引脚1的电平状态。 GPIO_ReadInputPin(GPIOB, GPIO_PIN_1);
//---------------------------------------------------------------------------------------
void GPIO_ExternalPullUpConfig(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin,
FunctionalState NewState);
这个函数用来使能或禁止指定端口某一个或多个引脚的内部上拉电阻,无返回值。
参数:
GPIOx:端口GPIOA到GPIOI可选。
GPIO_Pin: 要使能或禁止内部上拉电阻的引脚,可以用“或”方式选择多个引脚,
可选值:
GPIO_PIN_0 选择 0 引脚 GPIO_PIN_1 选择 1 引脚 GPIO_PIN_2 选择 2 引脚 GPIO_PIN_3 选择 3 引脚 GPIO_PIN_4 选择 4 引脚 GPIO_PIN_5 选择 5 引脚
GPIO_PIN_6 选择 6 引脚 GPIO_PIN_7 选择 7 引脚
GPIO_PIN_LNIB 低四位引脚选择,即同时选择PIN_0到PIN_3。 GPIO_PIN_HNIB 高四位引脚选择,即同时选择PIN_4到PIN_7。 GPIO_PIN_ALL 选择全部引脚,即同时选择PIN_0到PIN_7。
示例:禁止和使能端口GPIOB引脚0的上拉电阻。 如果该引脚原为推挽输出,那么禁止后就变为开漏输出。 如果该引脚原来上拉输入,那么禁止后就变为浮动输入。 如果该引脚原为开漏输出,那么使能后就变为推挽输出。 如果该引脚原来浮动输入,那么使能后就变为上拉输入。
(1)GPIO_ExternalPullUpConfig(GPIOB, GPIO_PIN_0, DISABLE); //禁止内部上拉电阻。 (2)GPIO_ExternalPullUpConfig(GPIOB, GPIO_PIN_0, ENABLE); //使能内部上拉电阻。
正在阅读:
stm8gpio库函数笔记03-16
工程热力学总复习10-06
市委书记在疫情防控工作视频会议上的总结发言讲话模板范文08-04
第一次撒谎作文400字06-23
蛋壳钙镁含量的测定04-07
班干部培训08-14
新时代教师师德师风心得感悟范文8篇04-03
2015年玉溪教师公开招聘考试《中学语文》全真模拟试卷(2)08-17
全国党员管理信息化工程8个管理子系统操作手册(前3个)v1 - 图文12-07
我学会了坚强300字作文02-05
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 函数
- stm8gpio
- 笔记
- 管理学复习要点
- 汽车怎样安全通过盲区
- 施工组织设计方案范文--服装企业物流信息系统规划方案
- 江西省2015年幼儿教师资格证《综合素质》考点详解:幼儿文学试题
- 心理学最终定稿1
- 2018 - 2019学年高中语文第1单元人生的五彩梦2离骚(节选)教师
- 1454-语文-2012届高三二轮专题卷:附加题(三)(江苏)
- 《如何防止和纠正小学化倾向》培训小结
- 创建文明城市督导工作小结
- 炒股只看一根均线 - 图文
- 《大同市近期建设规划(2016-2020年)》 - 图文
- 辽宁省六校协作体2017-2018学年高一上学期期中考试化学试题
- 2017鼓楼区二模试题及答案
- 2017-2021年中国动漫电影行业竞争格局及投资价值分析报告目录
- 市重点疾控工作检查情况汇报
- 农机推广对农业经济发展的重要作用
- 试卷
- 港式番茄牛肉面的做法
- 2015秋中央电大《国际私法》形考03任务--0001参考答案
- 中国重型车桥行业市场前景分析预测报告(目录) - 图文