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

在刚开始写程序的时候,在程序中需要设置寄存器的时候,往往不知道寄存器名称怎么写才是对的,这时候可以通过头文件来查看寄存器是如何调用的。在打开一个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);
在这里插入图片描述
这样通过查看头文件,就能很清楚的直到,关于单片机的寄存器如何调用。

发布了76 篇原创文章 · 获赞 30 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_20222919/article/details/99416007