stm32阶段总结录

发布者:不懂之人最新更新时间:2021-11-08 来源: eefocus关键字:STM32  DHT11  温湿度传感器 手机看文章 扫描二维码
随时随地手机看文章

一、C语言之预处理

预处理有三种:宏定义、条件编译、文件包含。


1.1、宏定义

#define EXT extern // 用EXT代替extern关键字


1.2、文件包含

#include “stm32f10x.h”


1.3、条件编译

防止同一个头文件被不同的文件多次包含,编译时所有文件编译成一个可执行文件有大量命名冲突。


#ifndef <标识符>   //if not defined

#define <标识符>

代码段落

#endif

 

#ifndef  _public_h  

#define  _public_h

#include "public.h"

#endif

#空指令,无任何效果

#include包含一个源代码文件

#define定义宏

#undef取消已定义的宏

#if如果给定条件为真,则编译下面代码

#ifdef如果宏已经定义,则编译下面代码

#ifndef如果宏没有定义,则编译下面代码

#elif如果前面的#if给定条件不为真,当前条件为真,则编译下面代码

#endif结束一个#if……#else条件编译块

#error停止编译并显示错误信息


1.4、C语言中的宏机制

c程序编译分过程分为三个步骤:(1)预处理;(2)编译;(3)链接。在预处理阶段,编译器中的预处理器会将定义的宏展开,即 原封不动的替换宏的定义,只是在处理文本。


二、typedef enum{};与enum{};

typedef 为C语言的关键字,释义:为各种数据类型定义一个新名字(别名)。


2.1、枚举类型的声明

enum [枚举名] {枚举元素列表};


typedef enum [枚举名] {枚举元素列表};


typedef enum{FALSE=0,TURE=1}bool; // bool为此枚举类型的变量,它的值只能是由FALSE与TURE赋予。

typedef enum{FALSE=0,TURE=!FALSE}bool;// FALSE与TURE不能是小写,小写是C语言的保留字。


三、结构体与联合体

结构体和联合体用于描述事物的属性,如一只鸟的信息,可能包括它的品种,体重,颜色,年龄等。


用户根据自己的需求构造的数据类型,但必须“先定义,后使用”。


用户必须先构造一个结构体类型,然后才能使用这个结构体类型来定义变量或数组。

struct 结构体名称{}结构体别名;


/*定义一个结构体sbit,取别名Bit,表示8个位域结构

unsigned bit0为位段名 1为位的个数*/

typedef struct  sbit

unsigned bit0 : 1; 

unsigned bit1 : 1; 

unsigned bit2 : 1; 

unsigned bit3 : 1; 

unsigned bit4 : 1; 

unsigned bit5 : 1; 

unsigned bit6 : 1; 

unsigned bit7 : 1;

}Bit; 


四、C语言数据类型

unsigned无符号整型, 例如 int 型的范围:-2^31 ~ 2^31 - 1,而unsigned int的范围:0 ~ 2^32。看起来unsigned 是个不错的类型,尤其是用在自增或者没有负数的情况。但是在实际使用中会出现一些意外的情况。


signed在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果需声明无符号类型的话就需要在类型前加上unsigned。无符号版本和有符号版本的区别就是无符号类型能保存2倍于有符号类型的正整数数据。


五、stm32中的数据类型

typedef unsigned short   int uint16_t


参考:https://www.cnblogs.com/wangh0802PositiveANDupward/archive/2013/01/01/2841697.html


在STM32编程中,常用的数据类型有:char(字符型),u8,u16 ,u32,但是在一些计算中,涉及到负数,小数,因此要用到:int   float doulbe 型。

其中u8——1个字节,无符号型(不能表达负数,如果用来当作负数的话,就出错了);

     u16 ——2个字节,无符号型(参看前边STM32f10x.h中的定义);

     u32——4个字节,无符号型;

    int——4个字节,有符号型,可以表达负整数;

    float ——4个字节,有符号型,可以表达负数/小数;

   double——8个字节,有符号弄,可以表达负数/小数;


六、stm32时钟

HCLK:送给AHB总线、内核、内存和DMA使用的HCLK时钟。

HSI:高速内部时钟

FLITFCLK:到Flash编程接口

LSE:低速外部时钟

HSE:高速外部时钟

FCLK:直接送给Cortex的自由运行时钟(free running clock)FCLK

 、

GPIO_Mode_IN = 0x00        // GPIO Input Mode                        输入模式

GPIO_Mode_OUT = 0x01   //  GPIO Out Mode                          输出模式

GPIO_Mode_AF = 0x02      // GPIO Alternate Function Mode   复用模式

GPIO_Mode_AN= 0x03      // GPIO Analog In/Out Mode            模拟输入/输出模式


进制转换表

关键字:STM32  DHT11  温湿度传感器 引用地址:stm32阶段总结录

上一篇:STM32带位操作
下一篇:stm32库函数记录

推荐阅读最新更新时间:2024-11-09 12:02

关于STM32配置中断和GPIO针脚问题
 STM32是用的什么开发环境?   STM32系列单片机,这款单片机功能强大,而且很容易学习,官方示例代码很多,稍加修改就可以开发自己的东西了。   嵌入式软体搭配最新版的STM32CubeMX个人电 脑开发 工具使用, 设计人员 可在绘图介面向导内配置微控制器,只要按一下,即可生成初始化C代码,直接用於多款市面上流行的 第三方开发 工具。   STM32Nucleo 开发板可让开发人员连接微控制器的全部I/O介面,并整合了ST-Link侦错器(debugger)/程式设计(programmer),无需单独安装侦错器。最後, STM32Nucleo 开发板拥有mbedTM功能,这表示该开发板可与个人电脑直接连结,并直接在mbed
[单片机]
基于STM32与机智云的智能蜡疗机
摘要: 随着物理疗法在慢病治疗中的效果获得认可, 传统的石蜡疗法被广泛应用在医院的理疗科。目前, 蜡疗机的制蜡方法虽已趋于成熟, 但仍存在制蜡效率低下、功耗大、不够智能等问题, 因此有必要对蜡疗机的制蜡效率及智能化程度进行研究。以STM32微控制器为核心, 结合G510通信模块, 对蜡疗机的硬件系统进行优化设计;通过机智云物联网开发技术, 对蜡疗机进行控制和通信。 试验结果表明, 与现有产品相比, 该系统减少了制蜡时间、降低了蜡疗机的功耗, 实现了蜡疗机的物联网控制。该研究为进一步完善蜡疗机的功效提供了设备基础, 对蜡疗机的广泛应用具有积极促进作用, 对今后利用石蜡疗法进行理疗大数据的挖掘与应用具有重要意义。 0 引言 经
[单片机]
基于<font color='red'>STM32</font>与机智云的智能蜡疗机
Crypto算法库使用技巧之基于STM32 AES GCM应用提示
引言 X-CUBE-CRYPTOLIB 是基于 STM32 的 Crypto 算法库,支持对称密钥、非对称密钥、哈希等多种算法。正确地使用 Cyrptolib 算法库,可以在应用程序中实现数据加密、设备身份认证、加密通信等多种应用层所需的安全功能。相反,若不能正确地使用算法库往往会带来加解密数据错误等系列问题。 关于 STM32 Crypto 算法库应用中的常见的问题之一就是应用程序没有使能 MCU 的CRC 模块,尽管输出的数据和期望值不同,但加解密函数的调用并未返回异常。本文在此描述另外一种没有正确使用算法库的情况。 问题描述 客户应用项目中需要在固件更新过程中对固件进行加密并验证,根据推荐采用了 AES- GCM 算
[单片机]
stm32串口通信流程图
1.写在前面 首先,你要知道STM32启动文件中启动流程,你就需要掌握一点汇编基础知识。 汇编语言属于机器语言,或者说低级语言,C语言属于高级语言,所以,汇编和C语言在语法上差异很大。 如果你学底层开发,汇编的一些基础知识需要掌握。不需要精通,但需要看懂常见的汇编代码。 2.说明 STM32的启动文件与编译器有关,不同编译器,它的启动文件不同。 虽然启动文件(汇编)代码各有不同,但它们原理类似,都属于汇编程序。 我们拿基于MDK-ARM的启动文件来举例,说一下要点内容。 3.分配堆栈 在基于MDK的启动文件开始,有一段汇编代码是分配堆栈大小的。 这里重点知道堆栈数值大小就行。还有一段AREA(区域),表示分配一段堆栈数
[单片机]
<font color='red'>stm32</font>串口通信流程图
基于机智云物联网平台的空气质量多功能检测系统设计
摘要: 目前市面上的空气质量检测仪通常只能检测少数几种气体,面对空气中多种有害气体,就要使用不同的检测仪器。针对现有检测系统功能不全等问题,开发了由STM32单片机、各类传感器、LCD显示屏和WiFi通信模块组成的多功能检测系统,并利用机智云物联网平台传输数据到用户终端。该检测系统能够实现对空气中的CO、CO2、PM2.5、TVOC、甲醛的含量以及温湿度进行实时监测,并具有超标报警功能。 1引言 空气中的有害物质直接影响人们的心身健康,室内空气的危害气体主要有CO、CO2、PM2.5、甲醛等 。温湿度对人的舒适度有较大影响,低湿度环境对人有多种不利影响 。因此,对空气中的有害气体及环境的温湿度进行检测是必要的,对人员密集、
[单片机]
基于机智云物联网平台的空气质量多功能检测系统设计
STM32通定时器时间设置步骤和计算公式方法寄存器值
一、STM32通用定时器原理 STM32 系列的CPU,有多达8个定时器,其中TIM1和TIM8是能够产生三对PWM互补输出的高级定时器,常用于三相电机的驱动,它们的时钟由APB2的输出产生。其它6个为普通定时器,时钟由APB1的输出产生。 下图是STM32参考手册上时钟分配图中,有关定时器时钟部分的截图: 从图中可以看出,定时器的时钟不是直接来自APB1或APB2,而是来自于输入为APB1或APB2的一个倍频器,图中的蓝色部分。 下面以通用定时器2的时钟说明这个倍频器的作用:当APB1的预分频系数为1时,这个倍频器不起作用,定时器的时钟频率等于APB1的频率;当APB1的预分频系数为其它数值(
[单片机]
<font color='red'>STM32</font>通定时器时间设置步骤和计算公式方法寄存器值
STM32触摸按键原理和电路设计
01触摸按键原理 触摸使用RC充放电原理: RC电路是指由电阻R和电容C组成的电路,它是脉冲产生和整形电路中常用的电路。 充电过程: 电源通过电阻给电容充电,由于一开始电容两端的电压为0,所以电压的电压都在电阻上,这时电流大,充电速度快。随着电容两端电压的上升,电阻两端的电压下降,电流也随之减小,充电速度小。充电的速度与电阻和电容的大小有关。电阻R越大,充电越慢,电容C越大,充电越慢。衡量充电速度的常数t(tao)=RC。 放电过程: 电容C通过电阻R放电,由于电容刚开始放电时电压为E,放电电流I=E/R,该电流很大,所以放电速度很快。随着电容不断的放电,电容的电压也随着下降。电流也很快减小。电容的放电速度与RC有关,R的阻值
[单片机]
<font color='red'>STM32</font>触摸按键原理和电路设计
STM32 USART使用DMA设置
1、外设时钟初始化 首先初始化需要用到的外围设备设备的时钟,需要初始化的始终有USART RX DMA使用的DMA1、USART1、USART1使用的GPIO、AFIO(如果USART的管脚需要Remap则需要打开否则不用); /* DMA clock enable (USART RX using dma1) */ RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); /* USART clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); /* Enable GPIO cloc
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved