历史上的今天

今天是:2024年09月07日(星期六)

2021年09月07日 | STM8S之GPIO自学笔记

发布者:740322lwj 来源: eefocus关键字:STM8S  GPIO  寄存器 手机看文章 扫描二维码
随时随地手机看文章

STM8S105C6T6 48个引脚 32KB Flash  封装:LQFP  temp:-40~85

PA1~PA6,PB0~PB7,PC1~PC7,PD0~PD7,PE0~PE3,PE5~PE7,PG0,PG1,

一共38个通用I/O口。


GPIO寄存器

端口x输出数据寄存器(Px_ODR);

端口x输入数据寄存器(Px_IDR);

端口x输出数据方向(Px_DDR);0:输入模式 1:输出模式;

端口x控制寄存器1(Px_CR1);

当DDR=1;置0 模拟开漏输出;置1 推挽输出;(CR2位做输出摆率控制);

当DDR=0;置0 浮空输入;置1 上拉输入;

端口x控制寄存器2(Px_CR2);

当DDR=0;置0 禁止外部中断;置1 使能外部中断;

当DDR=1;置0 speed 2MHz;置1 speed 10MHz;

相应GPIO库函数

void GPIO_DeInit(GPIO_TypeDef* GPIOx);

用于恢复指定端口的寄存器到默认值,0x00;无中断的功能浮空输入。

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin, GPIO_Mode_TypeDef GPIO_Mode);

GPIO初始化,配置指定端口功能

GPIO_Pin:

GPIO_PIN_0 ~GPIO_PIN_7;
GPIO_PIN_HNIB;//高四位引脚

GPIO_PIN_LNIB;//低四位引脚

GPIO_PIN_ALL  ;//所有引脚

GPIO_Mode:输入输出模式设置;

void GPIO_Write(GPIO_TypeDef* GPIOx, u8 PortVal);

写值到相应GPIO输出。

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);

读取指定端口数据,返回一个8位无符号值。前提该端口配置为输入模式。

u8 GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);

读取指定端口输出寄存器的值,返回一个8位无符号值。

BitStatus GPIO_ReadInputPin(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin);

读取指定端口一个或多个引脚的状态,任意一个引脚为高电平则返回SET,否则返回RESET。

void GPIO_ExternalPullUpConfig(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin, FunctionalState NewState);

使能或禁止内部上拉电阻的引脚。

STM8S系列可以采用库函数或直接操作寄存器进行编程,

库函数版本的GPIO点亮LED(IAR FOR STM8S)

#include "stm8s.h"
#define uint unsigned int
void Delay(uint xms)
{
  uint i,j;
  for(i=xms;i>0;i--)
   for(j=220;j>0;j--);
}


void main()
{
  
   GPIO_Init( GPIOD,GPIO_PIN_0,GPIO_MODE_OUT_PP_HIGH_FAST);

  GPIO_WriteHigh(GPIOD,GPIO_PIN_0);
   Delay(500);
  GPIO_WriteLow(GPIOD,GPIO_PIN_0);
   Delay(500);
   while(1);
 

}


void assert_failed(u8* file, u32 line)
 {
   while (1)
   {
   }
 }

关键字:STM8S  GPIO  寄存器 引用地址:STM8S之GPIO自学笔记

上一篇:STM8S独立看门狗配置及使用
下一篇:STM8S之HSI自学笔记

推荐阅读

你今天燃烧卡路里了吗? 近年来,随着我们生活水平的提高和日常习惯的改变,肥胖渐渐成为了令无数人困扰的难题。为了实现减肥的目标,人们曾使出十八般武艺,动感单车、瑜伽、针灸、减肥药、轻断食……但对大多数人而言,减肥永远是将来时。三天打鱼两天晒网,到最后体重还是一点也未减下去。 最近,许多从事人工智能研究的科学家和大公司们开始利用AI涉...
据外媒报道,当地时间9月6日, TomTom宣布将其导航智能数据集成至微软网联汽车平台,导航情况和诊断数据可从车辆传输至微软Azure(微软基于云计算的操作系统),汽车制造商能够在Azure上将此类数据生成由数据驱动的观点,从而提供定制服务,并做出更明智的设计和工程决策。此外,包括交通信息和高精地图服务在内的定位智能技术,也可以用于汽车导航应用,...
虽然已经不是当初的诺基亚,但这个品牌依旧还在发布新产品。近日,新消息表明 HMD Global 最近开始为第四季度的商业发布做准备。知情人士透露,诺基亚 5G 智能手机旗舰产品 Nokia 9.3 PureView 官方保护壳的订单已经在零售商曝光,专注诺基亚的外媒 NokiaPowerUser 已确认其真实性。此消息表明该设备将很快上市。而根据 NokiaPowerUser 的说...
氮化镓(GaN)是一种III-V族宽能隙化合物半导体材料,能隙为3.4 eV,电子迁移率为1,700 cm2/Vs,而硅的能隙和电子迁移率分别为1.1 eV和1,400 cm2/Vs。因此,GaN的固有性质让器件具有更高的击穿电压和更低的通态电阻,这就是说,与同尺寸的硅基器件相比,GaN器件可以处理更大的负载,能效更高,物料清单成本更低。在过去的十多年里,行业专家和分析人士一...

史海拾趣

问答坊 | AI 解惑

给单片机初学者的几点建议!

你有了学习单片机的愿望,接下来的问题就是从何学起,如何学? 对于在校学生有老师指导,开始时的迷茫会少的多,而靠自学的朋友麻烦就多一些。    例如从哪种单片机学起? 需要哪些器材? 买什么书籍有用? 做些什么实验?... ...等等。   ...…

查看全部问答∨

火灾自动报警系统它有哪几种形式

由触发器件、火灾报警装置、火灾警报装置、以及具有其他辅助功能的装置组成的火灾报警系统。它包括有区域显示屏报警系统、集中报警系统和控制中心报警系统。…

查看全部问答∨

什么叫DLP、LCD背投电视!

本帖最后由 jameswangsynnex 于 2015-3-3 20:00 编辑 答:DLP背投的核心就是DMD芯片,只有火柴盒大小的芯片上竟密密麻麻地排列了80万至100万面小镜子,而且每个小镜子都可以独立向正负方向翻转10度,并可以每秒钟翻转65000次。 ...…

查看全部问答∨

收集到的LED点阵控制Proteus仿真实例

新手大家多支持啊,,,,,见笑了…

查看全部问答∨

变频器负载匹配办法

生产机械的种类繁多,性能和工艺要求各异,其转矩特性不同,因此应用变频器前首先要搞清楚电动机所带负载的性质,即负载特性,然后再选择变频器和电动机。负载有三种类型:恒转矩负载、风机泵类负载和恒功率负载。不同的负载类型,应选择不同类型的 ...…

查看全部问答∨

奥普拉在美国斯坦福大学毕业典礼上的演讲

大家都知道,奥普拉是美国著名的电视节目主持人。 过去几周,只要有人问我忙什么?我就说:我准备去斯坦福大学演讲。事实上,我连田纳西州立大学都没有毕业。 其实,这整个世界,我们所居住的宇宙,就像个大教室,等着我们一个学分、 一 ...…

查看全部问答∨

Windows CE在指纹传感器设备驱动程序开发中的应用.pdf

Windows CE在指纹传感器设备驱动程序开发中的应用.pdf…

查看全部问答∨

【ATMEL 问题】AT91R40008下载

AT91R40008 单片机烧写不是很方便。请问大侠有哪些方式可以对这款ARM芯片烧写?目前使用方式AT91R40009+外部FLASH . 这样烧写麻烦,需要用编程器烧写,而且需要把文件转换成.HEX文件,使用专门的软件。    有大侠使用过该款芯片吗?而且 ...…

查看全部问答∨

avr mega16 USB下载不了了

提示什么chip enable program error   开始很好  我一个哥们拿去用他的USB下载器只写了一下熔丝位就再也不能烧程序等所有对avr 的操作了  求助大仙…

查看全部问答∨

如何在msp430f161X 上实现IAP功能

我的需求是希望在程序运行过程中,实现自我升级的功能. 也就是说, 正在运行的程序会将从串口接受到的新程序写入Flash中, 而新的程序会在设备再次启动后自动加载! 那位高手从事过相关的开发,请指教,谢谢! any comment is welcomed, Thanks!…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved