通用输入输出口(GPIO)是我们使用单片机最基本的,主要功能:

● 端口的各个位可以被单独配置

● 可选择的输入模式:浮动输入和带上拉输入

● 可选择的输出模式:推挽式输出和开漏输出

● 外部中断可以单独使能和关闭

用户手册上描述:

每一个端口都有一个输出数据寄存器(ODR),一个引脚输入寄存器(IDR)和一个数据方向寄存器(DDR) 总是同相关的。控制寄存器1(CR1)和控制寄存器2(CR2)用于对输入/输出进行配置。任何一个I/O引脚可以通过对DDR,ODR,CR1和CR2寄存器的相应位进行编程来配置。

各种不同配置总结如下:

配置模式 DDR CR1 CR2 配置模式 上拉电阻
输入 0 0 0 悬浮输入  OFF
0 1 0 上拉输入 ON
0 0 1 中断悬浮输入  OFF
0 1 1 中断上拉输入 ON
输出 1 0 0 开漏输出  OFF
1 1 0 推挽输出
1 x 1 输出(最快速度10MHZ) 
x x x 真正的开漏输出 未采用

这里作为练习控制3个LED,分别是PA1,PA2,PD4,都设置为 推挽输出 模式。

以下是初始化函数:

  1. //CTRL0 PA1
  2. //CTRL1 PA2
  3. //CTRL2 PD4
  4. void GPIO_init(void)
  5. {
  6. PA_DDR|=0x03;
  7. PA_CR1|=0x03;
  8. PA_CR2|=0x00;
  9. PD_DDR|=0x10;
  10. PD_CR1|=0x10;
  11. PD_CR2|=0x00;
  12. }

需要控制IO口的电平,需要对于ODR寄存器进行修改,读表可得知1为高电平,0为低电平。

这里只需要对相应的位进行修改数值。

  1. void CTRL0_HIGH(void)
  2. {
  3. PA_ODR|=0x01;
  4. }
  5. void CTRL0_LOW(void)
  6. {
  7. PA_ODR&=0xFE;
  8. }
  9. void CTRL0_Reverse(void)
  10. {
  11. PA_ODR^=0x01;
  12. }

stm8s开发(二) GPIO的使用:点亮LED!相关推荐

  1. STM8S自学笔记-003 GPIO输出:点亮LED灯 and 跑马灯特效

    STM8S自学笔记-003 GPIO输出:点亮LED灯 and 跑马灯特效 点亮LED GPIO初始化函数:GPIO_Init() GPIO电平操作库函数:GPIO_WriteHigh().GPIO_ ...

  2. 蓝牙芯片nRF51822开发系列(一):环境搭建和GPIO使用(点亮LED)

    蓝牙芯片nRF51822开发系列(一):环境搭建和GPIO使用(点亮LED) 前言(文章末尾获取工程源码) 一.开发必备 二.开发环境搭建 1.创建文件 2.新建工程 三.编写代码 GPIO详解 使用 ...

  3. linux开发板led怎么亮,TQ2440开发板上实现按键点亮LED(转载)

    //声明:该文章是在网上搜到的,对作者表示感谢. 文章记录了作者在TQ2440开发板上实现按键点亮LED驱动开发的详细过程,还记录了一些容易出现的错误,以及怎么解决这些错误. 一.驱动开发流程 二.驱 ...

  4. stm8s: GPIO配置,点亮LED!PB4,PB5引脚LED点不亮

    最近两天在做STM8S103的开发,调完硬件后,就开始编写软件了,第一步当然又是点亮LED灯了,结果很尴尬的死活点不亮!后来各种百度,认真查看数据手册,才发现一个很大的坑,由于粗心大意,没有看到,做个 ...

  5. 【STM32】STM32CubeMX教程二--基本使用(新建工程点亮LED灯)

    前言 在配置好CubeMX之后,就是新建工程的开始了,那么首先我们需要一些准备,本片博客我们会很详细的介绍STM32CubeMx的基本使用和如何创建一个新的工程并且点亮LED灯  面向初学者   如果 ...

  6. LINUX驱动开发(二)GPIO驱动框架

    1. 驱动框架 pinctrl子系统+gpio子系统+设备树+platform总线. pinctrl子系统重点在设置引脚复用,gpio子系统用于初始化引脚. Linxu提供总线-设备-驱动模型,用于将 ...

  7. 树莓派教程 - 1.0 树莓派GPIO库wiringPi 点亮LED

    Git例程源码仓库:https://github.com/ZhiliangMa/raspberry.git 电脑需要提前安装的工具: SSH.串口 - 终端神器 MobaXterm,官网下载链接:ht ...

  8. 【萌新向】STC8A8K64S4A12开发学习(一)——点亮LED

    一.独立按键 例如使用四个按键分别控制四个LED #include <stc8.H>//头文件,根据所使用的MCU确定 #include <intrins.h> sbit KE ...

  9. wringPi 初始化GPIO 为上拉_玩转GPIO之PWM点亮呼吸灯(非树莓派)

    在这篇文章,我介绍了基于逸宸电子开发的总线适配器来点亮LED灯的基本方法! myastrotong:玩转GPIO之点灯(非树莓派)​zhuanlan.zhihu.com 这款总线适配器的介绍见这里: ...

  10. 关于FS4412的ARM开发环境搭建并点亮LED灯

    目录 一.ARM开发环境搭建 1.安装 GCC 编译工具 2.安装 Yagarto 工具包 3.安装FS-JTAG调试软件 4.安装JRE 5.安装FS-JTAG驱动 6.安装USB转串口驱动 7.安 ...

最新文章

  1. cad里面f命令用不了,CAD出现命令无效、失灵等问题?不用慌,两招帮你快速解决...
  2. mysql设置远程访问
  3. centos运行jar包需要的环境_CentOS 7.4下运行jar包
  4. 贝叶斯优化的初步理解
  5. Vue全家桶 + webpack 构建单页应用初体验
  6. MySQL获取每个分类下面的前三条数据
  7. microsoft计算机调制管理器,Microsoft
  8. mysql占用内存吗_mysql占多少内存
  9. WINDOWS SERVER 2008/2008 R2/2012 最大内存支持
  10. 【Flink】SqlValidatorException: Column xxx not found in any table
  11. 把服务器文件,如何把文件放在服务器
  12. 4.8_adapter_结构型模式:适配器模式
  13. 2021年校招软件测试工程师经典面试题,月薪15K你需要掌握哪些知识点?
  14. 3.7-php连接MongoDB
  15. 适合做自动化测试的项目
  16. 论文笔记_S2D.61_2019-CVPR-DeepLiDAR:基于稀疏激光雷达数据和单张彩色图像的户外场景的表面法线引导的深度预测
  17. 女人在聊天中说给你一个拥抱_不要提高技能; 拥抱一个机器人
  18. idea启动日志在哪里_艹,我的日志被Intellij IDEA 控制台给“吃”了!
  19. 医院体检PEIS系统
  20. App云测试服务对比

热门文章

  1. Spring Cloud Greenwich 正式发布,Hystrix 即将寿终正寝!
  2. 非常详尽的 Shiro 架构解析!
  3. 多线程:AQS的一些心得
  4. access数据库拆分的用途_聊聊数据库设计一些经验 条条都是干货
  5. do while循环语句_流程控制之循环语句【while循环语句】
  6. 银行业数据中心性能测试的策略与实践(PPT)
  7. 上海市互联网数据中心建设导则(2019版)
  8. 生僻字(通信工程版)
  9. 亚马逊AWS 数据中心起火,致 5 人死亡、50 人受伤
  10. shell怎么把负数变成正数_excel怎么计算平方根-记住简单的收藏复杂的