历史上的今天
返回首页

历史上的今天

今天是:2025年01月03日(星期五)

正在发生

2020年01月03日 | STM8学习笔记---如何在程序中确定寄存器名称

2020-01-03 来源:eefocus

在刚开始写程序的时候,在程序中需要设置寄存器的时候,往往不知道寄存器名称怎么写才是对的,这时候可以通过头文件来查看寄存器是如何调用的。在打开一个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);

在这里插入图片描述

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

推荐阅读

史海拾趣

C-TON Industries公司的发展小趣事

随着公司规模的扩大,C-TON意识到单凭自己的力量难以在竞争激烈的电子行业中立足。于是,公司开始积极寻求与其他企业的战略合作。通过与一家知名的电子产品制造商建立合作伙伴关系,C-TON成功将其芯片技术应用于对方的产品中,进一步扩大了市场份额。这一合作不仅提升了C-TON的知名度,也为其带来了稳定的订单和收入来源。

Caliber公司的发展小趣事

随着电子行业的全球化趋势日益明显,Caliber公司积极实施国际化战略,拓展海外市场。公司通过与国外知名企业的合作,引进先进的技术和管理经验,不断提升自身的竞争力。同时,Caliber还积极参加国际电子展会和论坛,加强与国际同行的交流与合作。这些举措不仅为公司带来了更多的商业机会,也提升了Caliber在国际上的知名度和影响力。

Deltron / DEM Manufacturing公司的发展小趣事

随着公司实力的不断增强,DEM Manufacturing开始积极拓展国际市场。公司凭借优质的产品和专业的服务,成功打入欧洲、北美等多个地区的市场,并建立了稳定的销售网络。同时,公司还积极参与国际展览和论坛,与国际同行进行交流和合作,不断提升自身的国际影响力。

BCD Semi(Diodes)公司的发展小趣事

在电子行业的发展过程中,市场波动和风险挑战是不可避免的。某一年,全球半导体市场出现了严重的产能过剩,导致产品价格大幅下跌。面对这一挑战,BCD Semi(Diodes)公司及时调整生产策略,优化产品结构,降低生产成本,成功度过了这一行业寒冬。

Bergquist Company公司的发展小趣事

随着导热材料技术的不断进步,其应用领域也在不断扩展。Bergquist Company紧跟市场需求,将导热产品应用于汽车、家用电器、电脑、散热器、电源供应器及电马达控制等多个领域。这些产品的广泛应用不仅提升了人们的生活品质,还为公司的持续发展注入了强大动力。

COMPUTAR公司的发展小趣事

在光学技术不断革新的背景下,CBC株式会社于1979年成功研制出第一只手动变焦镜头。这一创新产品不仅提升了镜头的拍摄效果和灵活性,还进一步巩固了CBC在光学领域的领先地位。手动变焦镜头的推出,为CBC赢得了更多客户的青睐,也为公司的后续发展注入了新的动力。

问答坊 | AI 解惑

在SPI驱动里面接收SPI数据,怎么及时处理SPI数据缓冲区才不会让一帧数据跟下一帧数据起冲突。

在SPI驱动里面接收SPI数据,怎么及时处理SPI数据缓冲区才不会让一帧数据跟下一帧数据起冲突。…

查看全部问答>

关于通过无线局域网连接控制器的问题

有一台控制器设备,有LAN接口,IP地址是200.200.200.* 直接通过网线连接到电脑上,电脑的IP地址设为200.200.200.*,DNS是255.255.255.0网关设为192.168.1.1则可以连接到控制器,若把IP地址和网关设为其他的却不行,控制器软件只有一个IP地址,把IP ...…

查看全部问答>

高手请进:关于增强型单片机lpc932与pc的通信

麻烦高手看一下,我用的是增强型uart,pc发送一个“s”给单片机,单片机受到后会给pc发送一个response at 9600 baud 。不知程序是否有问题??? 程序如下: #include \"reg932.h\" #define uchar unsigned char uchar temp; char text[]= ...…

查看全部问答>

LM3S8962开发板自带的小游戏在哪可以下到程序啊?

LM3S8962开发板自带的小游戏在哪可以下到程序啊?…

查看全部问答>

帮实验室老是转让一些他项目剩余的芯片开发工具等

  芯片有:名称           数量 AT89C52        50       每片3元ATmega16L       11 ...…

查看全部问答>

未定义指令

                                 买的是北京微芯力科的开发板,付带了St公司的软件函数库,把这些函数库添加到应用程序文件,编译没问题,但仿真的 ...…

查看全部问答>

求一字模提取软件

今天在网上找了10几个, 没一个满意的, 其实我的要求非常简单, 自己能输入文字, 并能编辑此文字, 按行排或按列排, 可编辑分辨率, 可随意转换二进制码, 十六进制码, 共阴或共阳码!   以上要求8x8点阵字模提取软件, pctolcd2002, Zimo221软件等 ...…

查看全部问答>

容易被混淆的概念—转换器的分辨率与精度

  最近又在电子元件技术网上看一个产品介绍中看到了这样的说法“本产品采用16位高精度ADC”,看到这样的文章我真想把这句话改为“本产品采用16位,高精度ADC”。因为实际上16位是分辨率,分辨率和转换精度是一个有联系但本质不同的概念。这也 ...…

查看全部问答>

自主产品研发需要哪些必备仪器仪表呢

比如搞个小公司研发产品,但是资金不充裕,如此情况下,请问下,哪些仪器仪表是必须购买的呢?…

查看全部问答>

ADI笔记 高速ADC布局布线技巧

本帖最后由 paulhyde 于 2014-9-15 03:49 编辑 高速信号  …

查看全部问答>