stm32中c语言结构体

来自江协科技

c语言结构体

typedef struct(char x; int y; float z) structName;//其中typedef是关键字,用于将一个比较长的变量类型换个名字,typedefine A B,在后面用B来代替A。 struct()代表一个数据结构体,括号内是这一个结构体所含的的数据集合,structName是该结构体的名字,在后面可以用structName来代替这一个数据集合。

structName c;//给该结构体变量命名为c

c.x='A';

c.y=66;

c.z=1.23;//给该结构体内部数据变量赋值

stm32中

typedef struct

{uint16_t GPIO_Pin;

GPIOSpeed_TypeDef GPIO_Speed;

GPIOMode_TypeDef GPIO_Mode;

}GPIO_InitTypedeff

\\引入三个数据类型uint16_t、GPIOMode_TypeDef、GPIO_InitTypeDef,分别将其数据名称命名为GPIO_Pin、GPIO_Speed、GPIO_Mode,把这三种数据类型集合在GPIO_InitTypedeff这个结构体中。

GPIO_InitTypeDef GPIO_InitStructure;//给该结构体命名为GPIO_InitStructure

GPIO_InitStructure.GPIO_Pin=

GPIO_InitStructure.GPIO_Speed=

GPIO_InitStructure.GPIO_Mode=

//再自行定义该结构体内部数据变量的值

(笔记)

STM32是一种广泛使用的32位ARM Cortex-M系列微控制器,它由STMicroelectronics生产。在编程STM32时,我们通常会使用数据结构体来组织数据和管理硬件资源。构造数据结构体可以帮助我们更好地对数据进行封装和管理。 数据结构体(struct)是C语言中一种复合数据类型,它允许将不同类型的数据项组合成一个单一的数据结构。在STM32的编程中,我们可以定义结构体来表示寄存器组、状态信息、设备配置等。 例如,我们可能定义一个结构体来表示一个简单的设备状态: ```c typedef struct { uint8_t isOn; // 设备电源状态:0表示关,1表示开 uint8_t level; // 设备运行级别 uint16_t counter; // 设备运行计数器 } DeviceStatus; ``` 在STM32中使用结构体时,可能还需要考虑对寄存器的访问。STM32的寄存器通常具有特定的地址,我们可以通过定义指向这些地址的指针来访问和修改寄存器值。 例如,如果我们想定义一个结构体来访问STM32的某个外设的寄存器,我们可以这样做: ```c typedef struct { volatile uint32_t CR; // 控制寄存器地址 volatile uint32_t SR; // 状态寄存器地址 // 其他寄存器... } PeripheralRegisters; ``` 之后,我们可以将这个结构体实例化,并将其地址强制转换为对应外设的寄存器基地址,然后使用这个结构体来操作寄存器: ```c #define PERIPHERAL_BASE 0x40000000 PeripheralRegisters *peripheral = (PeripheralRegisters *)PERIPHERAL_BASE; // 现在可以通过peripheral结构体来访问寄存器了 peripheral->CR |= (1 << 1); // 对控制寄存器进行操作 ``` 使用结构体来封装寄存器操作可以使代码更加清晰和易于维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值