在刚开始写程序的时候,在程序中需要设置寄存器的时候,往往不知道寄存器名称怎么写才是对的,这时候可以通过头文件来查看寄存器是如何调用的。在打开一个IAR工程文件,打开main.c文件,然后再引用的头文件上单击鼠标右键,选择Open "iostm8s003F3.h"打开所引用的头文件。

假如我们要设置PB5口输出0,首先在STM8中文参考手册中找到GPIO输出寄存器

我们要设置的是PB_ODR寄存器,这时在打开的iostm8s003F3.h文件中按下Ctrl+F按钮,然后输入PB_ODR,点Find Next

这时候就会定位到PB_ODR寄存器宏定义位置处
#define PB_ODR_ODR0 PB_ODR_bit.ODR0
#define PB_ODR_ODR1 PB_ODR_bit.ODR1
#define PB_ODR_ODR2 PB_ODR_bit.ODR2
#define PB_ODR_ODR3 PB_ODR_bit.ODR3
#define PB_ODR_ODR4 PB_ODR_bit.ODR4
#define PB_ODR_ODR5 PB_ODR_bit.ODR5
#define PB_ODR_ODR6 PB_ODR_bit.ODR6
#define PB_ODR_ODR7 PB_ODR_bit.ODR7

这块列出了关于PB_ODR相关的所有定义,可以看到PB5的位定义
#define PB_ODR_ODR5 PB_ODR_bit.ODR5
我们可以直接调用 PB_ODR_ODR5 对PB5口进行操作,
PB_ODR_ODR5 = 0;就是设置PB5口输出低电平。
当然也可以采用传统的对PB口整体赋值
PB_DDR |= ( 1 << 5 ); 设置PB5口输出高电平。
为什么可以直接对PB5口进行位操作呢,因为在头文件中,官方已经定义好了关于PB口位操作的结构体。
typedef struct
{
unsigned char ODR0 : 1;
unsigned char ODR1 : 1;
unsigned char ODR2 : 1;
unsigned char ODR3 : 1;
unsigned char ODR4 : 1;
unsigned char ODR5 : 1;
unsigned char ODR6 : 1;
unsigned char ODR7 : 1;
} __BITS_PB_ODR;
#endif
__IO_REG8_BIT(PB_ODR, 0x5005, __READ_WRITE, __BITS_PB_ODR);

这样通过查看头文件,就能很清楚的直到,关于单片机的寄存器如何调用。

STM8学习笔记---如何在程序中确定寄存器名称相关推荐

  1. STM8学习笔记----普通IO口模拟串口功能

    串口在产品应用中很常见,但是单片机的默认带的串口往往比较少,有时候就会出现串口不够用,所以就想着能不能用普通IO口模拟串口来实现串口的功能. 要模拟串口首先要清楚串口数据传输过程中的原理. 常用的串口 ...

  2. Qt学习笔记,Qt程序架构设计要旨

    Qt学习笔记,Qt程序架构设计要旨 时间过得很快,转眼学习Qt已经有一个多月了,对Qt的学习也在不断的深入中.自己手下的code也很多了,不过不得不说,还有很多的部分没有接触过,比如网络编程,2D,3 ...

  3. mybatis学习笔记(3)-入门程序一

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(3)-入门程序一 标签: mybatis [TOC] 工程结构 在IDEA中新建了一个普通的java项 ...

  4. 《Go语言圣经》学习笔记 第二章 程序结构

    Go语言圣经学习笔记 第二章 程序结构 目录 命名 声明 变量 赋值 类型 包和文件 作用域 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语言小白学习笔记,几乎是书上的内 ...

  5. Java快速入门学习笔记7 | Java语言中的类与对象

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  6. IOS学习笔记05---C语言程序的开发运行过程

    IOS学习笔记05---C语言程序的开发运行过程 0 5.C语言3-C语言程序的开发运行过程 ----------------------------------------------------- ...

  7. ZooKeeper官方文档学习笔记03-程序员指南03

    我的每一篇这种正经文章,都是我努力克制玩心的成果,我可太难了,和自己做斗争. ZooKeeper官方文档学习笔记04-程序员指南03 绑定 Java绑定 客户端配置参数 C绑定 陷阱: 常见问题及故障 ...

  8. ROS学习笔记十一:ROS中数据的记录与重放

    ROS学习笔记十一:ROS中数据的记录与重放 本节主要介绍如何记录一个正在运行的ROS系统中的数据,然后在一个运行的系统中根据记录文件重新产生和记录时类似的运动情况.本例子还是以小海龟例程为例. 记录 ...

  9. Go语言开发学习笔记(持续更新中)

    Go语言开发学习笔记(持续更新中) 仅供自我学习 更好的文档请选择下方 https://studygolang.com/pkgdoc https://www.topgoer.com/go%E5%9F% ...

最新文章

  1. 遍历Collection,避免在循环中删除对象时避免ConcurrentModificationException
  2. [转]清华梦的粉碎—写给清华大学的退学申请
  3. Leaflet中通过setStyle实现图形样式编辑
  4. 关于事件的一点小总结
  5. 万里长征,始于足下——菜鸟程序员的学习总结
  6. [css] 判断如下边框的颜色,并解释为什么[代码]?
  7. ORACLE添加字段、删除字段
  8. SQL Server CTE 递归查询全解
  9. mssql sqlserver 优化注意事项:
  10. Arts 第六周(4/22 ~ 4/28)
  11. java web打印 闪退_tomcat闪退解决方案
  12. QT之实现斗鱼直播PC客户端
  13. 新联想ISG聚焦新IT,全要素推进企业智能化转型
  14. sqlplus使用update操作完数据,不要忘记commit,不然并没有写入到数据库中去
  15. 摩托罗拉linux软件下载,摩托罗拉手机软件驱动下载
  16. 微信小程序-多层饼图/包含关系饼图/自定义饼图关系模式
  17. KVM-虚拟化技术之Hypervisor-架构
  18. OpenGL API - 笔记汇总
  19. Mybatis 查询总数
  20. SimpleDateFormat 类简单用法

热门文章

  1. linux下添加新硬盘的方法
  2. GDAL读写矢量文件——Python
  3. 实现putty基于密钥的安全登录
  4. C++/CLI思辨录之再谈继承
  5. 转载---安装mysql5.7,遇到的问题
  6. 叠加多个装饰器——day13
  7. qt在GUI显示时,将调试信息输出到控制台的设置
  8. Linux学习-YUM 在线升级机制
  9. 数据结构与算法题整理
  10. indy idhttpserver有关下载的两个问题