STM32常用的C语言基础

本文介绍了STM32单片机中的数据类型(有符号和无符号),寄存器赋值的不同方法,如使用#define和typedef进行代码优化,以及条件编译、extern声明和结构体的使用。强调了良好的代码规范对于程序开发的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、定义整数的两种不同数据类型

有符号型(signed):可以表示正负数,最高位为0表示正数,最高数为1表示负数。

无符号型(unsigned):只能表示正数。

二、寄存器赋值的方法

单片机基础操作就是给寄存器赋值去实现一些功能,而STM32单片机有标准库函数、HAL库函数、寄存器三种主流写法,前两种就是通过typdef、#define来将一些十六进制的数替换成自定义的标识符,这样的好处就是提高代码的可读性例如: #define GPIO_MODE    0x00000003u 配置GPIO的模式。

而我们操作寄存器呢?

要记住一个重点,我们在C语言数电中都学过的与操作(&)和或操作(|)用|来置位用&来清零有三种方法:

法1:先给寄存器清零,然后再用&来置位。

法 2:异或操作,不同为1,相同为0。

三、#define宏定义

宏定义的核心是替换,提高可读率和易读率

#define        LED1(X)        do{x?\        }while(0)

用do while来构造宏定义

四、条件编译

有#ifndef        #if()        #ifdef    &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值