STM32 开发中 C 语言结构体复习(精简版)

STM32:结构体总结 1 什么是结构体 我们知道数据的基本类型有:int (整形 ), char(字符形) , unsigned int (无符号整形),unsigned char (无符号字符形) 等,还包括数组等,但有些情况下 这些都 无法满足现实的需求,于是程序员把所需变量组织起来,类似数组,便不同于数组,定义成一个新的数据类型,这就是结构体struct,.结构体类型是一种新的数据类型,在程序中,可以像... 阅读详情

STM32 开发中 C 语言结构体复习(精简版)

核心:结构体是STM32开发的基础,聚焦复习重点

一、结构体核心定义(必记)

结构体是C语言自定义复合数据类型,封装不同类型变量,统一管理(区别于同类型数组)

// 核心格式(STM32常用 typedef 简化)
typedef struct {
    int a;  // 示例成员
    char b;
} MyStruct;

二、STM32中结构体的核心用法(复习重点)

1. 寄存器映射(最常用)

外设寄存器地址连续,结构体成员对应寄存器地址,绑定基地址即可操作。

// 简化示例
typedef struct {
    uint32_t CRL;
    uint32_t ODR;
} GPIO_TypeDef;

#define GPIOA ((GPIO_TypeDef *)0x40010800)
// 核心操作
GPIOA->ODR |= (1<<5);

2. 初始化配置结构体

库函数常用,封装配置参数,简化代码。

// 简化示例
typedef struct {
    uint16_t GPIO_Pin;
    uint32_t GPIO_Mode;
} GPIO_InitTypeDef;

// 核心用法
GPIO_InitTypeDef initStruct;
initStruct.GPIO_Pin = 0x01;
initStruct.GPIO_Mode = 0x03;

三、关键语法

  • 访问成员:普通变量用 . ,结构体指针用 ->(STM32常用指针)

  • 内存特性:成员连续分配,顺序不能乱(否则映射出错)

  • typedef:简化定义,不用每次写struct

3.STM32之结构体学习 要想学好STM32,我们首先最重要的是了解结构体。本文简单地介绍一下结构体在STM32中的使用。同时扩展了解这三个关键字的学习。 阅读详情

相关推荐

结构体作用(STM32)

结构体作用(STM32) 来源:正点原子 MDK 中很多地方使用结构体以及结构体指针,下面总结一下其使用结构体的主要作用。 1.结构体是将不同的数据类型整合为一个有机整体,方便数据管理,增加代码的可读性 2.在我们单片机程序开发过程中,经常会遇到要初始化一个外设比如串口,它的初始化状态是由几个属性来决定的,比如串口号,波特率,极性,以及模式。对于这种情况,在我们没有学习结构体的时候,我们一般的方法...

鬼谷子的博客 1万+

自定义类型-结构体详解

深度讲解结构体定义,初始化,函数传参,枚举,联合体等自定义类型应用

k666499436的博客 1万+

嵌入式开发四:STM32 基础知识入门

define 是 C 语言中的预处理命令,它用于宏定义,可以提高源代码的可读性,为编程提供方 便。常见的格式:#define 标识符 字符串“标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等。例如: #define HSE_VALUE 8000000U#define PLL_M 8 //定义标识符 PLL_M 的值为 8。定义标识符 HSE_VALUE 的值为 8000000,数字后的 U 表示 unsigned 的意思。

weixin_47040031的博客 3805

STM32学习笔记——结构体

寄存器结构体定义 当我们完成了第一个试验后,或许会发现在头文件的部分,如果我们只用到一个端口,定义的量还尚可,但如果当我们有多个端口需要定义时,那我们就需要重复上面的所有定义再改去端口名,这样会比较麻烦且程序看着过于冗余,因此,我们可以用到结构体。 结构体的一般表达式为: struct { 成员表名; }变量表名; 结构体在我的理解当中就类似于一个数组,与数组不同的是,结构体中的元素可以是我们自定义的不同类型的变量,更确切地来说,结构体就像是个大集合,这个集合中能够包含我们想要的任何元素。 因此,按此思

qq_37967562的博客 6294

STM32 嵌入式学习入门(0)——C语言基础复习(1)

摘要主要介绍了嵌入式编程中几个常用,但软件编程中用得不是很多的C语言知识。包括位操作、条件编译、结构体和结构体指针、typedef声明类型、以及extern变量声明、static关键字等内容。本文并没有将相关C语言知识点介绍地很详细,毕竟这么多知识点要想掌握绝对不是看几篇文档就能掌握的。因此博主建议,如果上述的C语言知识掌握得还不是很好的话,找一本C语言的书好好研究研究。尤其是结构体和结构体指针、还有函数的知识(本文没提到),一定要很熟练。

2401_85012481的博客 1169

自学《STM32库开发实战指南》的笔记一

嵌入式基础知识学习一STM32库开发功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 自学《STM32库开发实战指南》的笔记 STM32库开发 STM32库是对STM32提供的函数接口,API。通过调用函数接口来配置STM32寄存

LGYSYGWH的博客 1202

STM32教程-02-STM32复习C语言

按位与 & :两位都为 1 时结果为 1,否则为 00000 1101&1111 1100——————————0000 1100按位取反 ~:将每一位的 0 变成 1,1 变成 0只要有一个位为 1,结果就为 10000 1101|1111 1100——————————1111 1101按位异或 ^ :两位不同则为 1,相同则为 00000 1101^1111 1100——————————1111 0001左移指令 : 高位溢出舍弃,低位补 0。0x01 << 3。

benjiangliu的博客 790

STM32之C语言基础复习

STM32之C语言基础复习

l_z_y_000的博客 1468

STM32学习之C语言知识复习

STM32 C语言

RongLin02的博客 1991

嘉立创EDA vs Altium Designer:新手如何选择?从界面到实战全对比

本文全面对比了嘉立创EDA与Altium Designer(AD)两大PCB设计工具,从设计哲学、界面交互、封装库管理、设计规则引擎、协作功能到成本生态六大维度进行深入分析。嘉立创EDA以极简设计和云端协作为特色,适合学生和创客快速上手;而AD则凭借专业级精准控制,成为高端电子设计的行业标准。通过实战案例和详细对比表格,帮助新手根据项目需求选择合适的EDA工具。

weixin_30296405的博客 720

Unity类银河战士恶魔城学习总结(P162 Improve skeleton提升敌人的效果)

为敌人添加了快慢刀

suzh1qian的博客 572

STM32 HAL库开发——基础篇

Flash:存放代码SRAM:内存外设1、STM32片内自带SRAM和FLASH,FLASH是用来存储程序的,SRAM是用来存储程序运行中的中间变量,通常不同型号的STM32的SRAM和FLASH大小是不相同的FLASH存储器又成为闪存,它与EEPROM都是掉电后数据不丢失的存储器,但是FLASH得存储容量都普遍的大于EEPROM,,在存储控制上,最主要的区别是FLASH芯片只能一大片一大片地擦除,而EEPROM可以单个字节擦除。2、SRAM是静态随机存取存储器。

清园暖歌的博客 2万+

差分放大电路的计算

反馈,对于运算放大电路来说,运放工作在线性区,所以这里一定是负反馈,没有反馈(开环)或者是正反馈,那是比较器电路而不是放大电路,这时候运放工作在饱和区或称为非线性工作区,正因为饱和,输出才是电源电压的幅值。图2是一种带正反馈的运放电路,这里就不能叫运算放大电路了,因为运放的开环放大倍数理想是无限大,当然实际中不可能无限大,所以如下结构是迟滞电压比较器,运放工作在非线性区或饱和区。实际应用电路中,我们为了简化计算,也是用最简方法计算,经常使用的电路也是上述电路,令电阻相等关系,简化计算。

qq_40170041的博客 352

STM32 嵌入式学习入门(0)——C语言基础复习

摘要     主要介绍了嵌入式编程中几个常用,但软件编程中用得不是很多的C语言知识。包括位操作、条件编译、结构体和结构体指针、typedef声明类型、以及extern变量声明、static关键字等内容。    本文并没有将相关C语言知识点介绍地很详细,毕竟这么多知识点要想掌握绝对不是看几篇文档就能掌握的。因此博主建议,如果上述的C语言知识掌握得还不是很好的话,找一本C语言的书好好研究研究。尤其...

Felik Zhang的博客 1万+

浙政钉(专有钉钉)门户免登(超详细)

钉钉家族 介绍浙政钉门户免登之前,首先搞清楚几个软件的关系,软件分别是:钉钉,专有钉钉,浙政钉 钉钉 是阿里巴巴集团专为中小企业打造的沟通和协同的多端平台。 专有钉钉 原名 政务钉钉,有更开放的设计能力、集成能力、更结构化协同产品、更定制化开发平台。支持专有化部署,数据落本地,更安全、客户可对该产品持牌运营、结构化编排,协助构建本地应用中心、提供移动应用全面安全保障体系。 浙政钉 为规范浙政钉整体架构体系,按照统分结合原则,由省政府办公厅统一设计整体工作界面和系统框架,统筹指导全省统建应用建设,各单

一缕南风的博客 2万+

QMT中ContextInfo的使用注意

QMT中ContextInfo下声明的全局变量的使用注意事项

路在何方 2807

基于stm32mini板的有关stm32的C语言复习

本篇文章将讲述有关stm32的c语言知识复习,小白总结,如有错误,请大神指教。

m0_63737690的博客 981

【单片机】STM32F103C8T6 最小系统板原理图

STM32F103C8T6是一款基于ARM Cortex-M3内核的32位微控制器,由STMicroelectronics(ST)公司生产。它是STMicroelectronics的STM32系列微控制器中的一员,被广泛应用于嵌入式系统和电子设备中。LQFP48封装(Low-profile Quad Flat Package,48引脚)SRAM(静态随机访问存储器):20 KB。支持JTAG调试和编程接口(可选)多个通用输入/输出口(GPIO)USB接口(用于USB设备模式)内置调试和编程接口(SWD)

q742971636的博客 6万+

STM32中常用的C语言知识点,开始复习!

要学嵌入式,关注@我要学嵌入式,嵌入式猛男的加油站。C语言是单片机开发中的必备基础知识,这里就列举部分STM32学习中会遇见的C 语言基础知识点。01位操作下面我们先讲解几种位操作符,然...

张巧龙的博客 1535

SAP UI5 控件剖析系列之 sap.m.DatePicker:单日选择的工程化用法、最佳实践与常见坑

在 SAP UI5 的输入控件族里,是最常被使用的日期选择控件。它把一个可编辑的输入框与一个弹出的日历整合在一起,允许用户用触摸、鼠标或键盘在本地化格式下选择某一天;控件既可以从弹出的日历里点选,也可以直接在输入框里键入日期。官方 Fiori 设计规范对它的定位就是:完成单个日期的选择,不牵涉时间,也不负责跨天的范围选择。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 343

数字图像处理:直方图匹配或规定化Histogram Matching (Specification)原理及感悟

本文介绍了连续图像和数字图像直方图匹配(直方图规定化)的原理、处理过程,并提供了案例进行了讲解。可以看到,直方图均衡处理是直方图匹配的一个重要桥梁。 最后,对于直方图规定化这个翻译个人觉得很low,个人感觉叫指定直方图更好理解,但Histogram Specification怎么翻译确实不太好把握,因此还是叫Histogram Matching直方图匹配最好。

老猿Python 2880

STM32学习·HAL库速通篇(一)·初始STM32以及C语言基础知识复习

stdint.h 是从 C99 中引进的一个标准 C 库的文件路径:D:\MDK5.34\ARM\ARMCC\include宏定义可以:提高效率、可读性、易改性,核心是替换#define 标识符 字符串标识符:宏定义的名字字符串:常数、表达式、格式串等}while(0)建议大家使用 do{ ... }while(0) 来 构造宏定义。这样不会受到大括号、分号、运算符优先级等的影响,总是会按你期望的方式调用运行。

时光の尘的博客 1489

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【STM32】复习—以MDK为背景的C语言基础复习

字节类型 位操作 1) 不改变其他位的值的状况下,对某几个位进行设值 2) 移位操作提高代码的可读性 3) ~取反操作使用技巧 define宏定义 ifdef条件编译 extern变量申明 typedef类型别名 结构体

yck1716的博客 584

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: STM32 GPIO 8种工作模式(最简说明)STM32 GPIO 8种工作模式(最简说明)
下一篇: 【保姆级实操版 - STM32 系列笔记】STM32 GPIO 的 8 种工作模式最简说明 & GPIO 标准库函数代码详解
CODE_RabbitV
博客等级 码龄7年 2931粉丝 218原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值