STM32学习笔记_GPIO输入
  RGE9SaKkXr6k 2023年12月12日 16 0

本节在学习GPIO输入之前,我们首先学习传感器电路的硬件知识,其次对C语言中的一些基本知识进行复习,最后编写GPIO输入的代码。


传感器电路的硬件知识

下图中为传感器部分的原理图:

图中将传感器接在P1连接座,通过N1传感器输出模拟电压信号IN+,将IN+信号输入到电压比较器LM393与可调电阻产生的N-信号进行比较,比较后输出数字信号DO,如果DO信号为低,则LED2导通点亮,如果DO信号为高,则LED2灭。LED2默认状态下由于R5电阻的上拉作用使其无法导通,默认为熄灭状态。

STM32学习笔记_GPIO输入_STM32GPIO输入




C语言部分的复习

由于后续的部分会用到C语言相关的知识,以下做一些C语言部分的复习:


数据类型

在STM32中,C语言官方使用定义的stdint关键字头文件,用来描述数据类型,比如int8_t等同于关键字char,使用STM32定义的关键字更简洁,但是可能需要适应一段时间,以下展示了数据类型与关键字的对应关系;

STM32学习笔记_GPIO输入_STM学习笔记_02



#define,宏定义,C语言中预处理命令一种

C语言中宏定义的作用:使用宏来替换原来的字符串:

STM32学习笔记_GPIO输入_STM32GPIO输入_03

STM32学习笔记_GPIO输入_STM学习笔记_04



typedefC语言的关键字,作用是为一种数据类型定义一个新名字 

关键字typedef和define有类似的地方,不同之处在于:

1.typedef只能对变量类型的名称进行改名。

2.define不需要分号,typedef需要分号。

3.typedef定义的新名称在语句的最后,而define将新名称放在中间。

STM32学习笔记_GPIO输入_STM32GPIO输入_05



struct结构体

C语言中使用struct定义结构体,用于将不同类型的数据变量打包放在一起,使用.操作符来调用结构体成员,并赋值。

也可以使用typedef将结构体的名称定义为更简洁的名称。

STM32学习笔记_GPIO输入_STM32GPIO输入_06

STM32学习笔记_GPIO输入_STM学习笔记_07



enum是一个关键字,,枚举数据类型描述的一组整型值的集合

枚举是用来定义整型变量的取值范围。

使用typedef可以将枚举的名称定义的更简洁。

STM32学习笔记_GPIO输入_STM32GPIO输入_08


STM32学习笔记_GPIO输入_STM32GPIO输入_09



STM32F103C8T6库函数方式_GPIO输入实验代码编写

1.思路:将LED驱动代码和按键驱动代码封装成模块的形式,在main函数中调用

#include "stm32f10x.h"    //添加头文件
#include "Delay.h"
#include "LED.h"

int main(void)
{
	LED_Init();
	while(1)
	{
		LED1_ON();
		Delay_ms(300);
		LED1_OFF();
		Delay_ms(300);
		LED2_ON();
		Delay_ms(300);
		LED2_OFF();
		Delay_ms(300);
		
	}
}



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月12日 0

暂无评论

推荐阅读
RGE9SaKkXr6k