12、微控制器寄存器访问与启动代码详解

微控制器寄存器访问与启动代码详解

1. 微控制器寄存器的位映射结构

在微控制器编程中,常常使用带有位域的 C 风格结构体来表示寄存器中的位或位组,这有助于创建与硬件寄存器位完全匹配的位映射结构。

1.1 位映射结构体示例

以一个 8 位端口寄存器为例,可以用如下 C 风格的位映射结构体来表示:

typedef struct struct_bit8_type
{
    std::uint8_t b0 : 1;
    std::uint8_t b1 : 1;
    std::uint8_t b2 : 1;
    std::uint8_t b3 : 1;
    std::uint8_t b4 : 1;
    std::uint8_t b5 : 1;
    std::uint8_t b6 : 1;
    std::uint8_t b7 : 1;
} bit8_type;

使用 bit8_type 结构体很简单,例如将 portb.5 置为高电平:

reinterpret_cast<volatile bit8_type*>(mcal::reg::portb)->b5 = 1U;
1.2 联合的使用

还可以方便地将内置整数类型与位映射寄存器结构组合在 C 风格的联合中。例如:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值