C8T6超绝模块--LED

C8T6超绝模块--LED

大纲

  1. 怎样点亮LED
  2. 结构体分析
  3. 代码流程

具体案例

怎样点亮LED

首先不同的芯片的接法不一样,需要自己查看自己的芯片的原理图,我使用的是C8T6,使用的PC13接入的LED

注意看:怎么才能使LED灯亮呢?

如图一边接入的是3.3V的外接电压,而我们需要电流流过需要PC13是低电压,这样有电势差才会使产生电流让小灯亮,初始化时我们一般控制默认接入高电压,使其不亮

结构体分析

下面带来的是GPIO的结构体和其成员

cpp 复制代码
typedef struct
{
  uint16_t GPIO_Pin;             // 决定是哪个引脚

  GPIOSpeed_TypeDef GPIO_Speed;  // 确定GPIO传输的速度

  GPIOMode_TypeDef GPIO_Mode;    // 确定GPIO的工作模式
  
}GPIO_InitTypeDef;

代码流程

  1. 首先我们应该打开时钟,只有打开时钟才能工作
  2. 配置GPIO
  3. 初始化GPIO

下面是LED灯的GPIO的初始化函数

LED灯的GPIO的初始化函数

cpp 复制代码
void LED_GPIO_Config(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
	GPIO_InitTypeDef GPIO_InitStruct;
	GPIO_InitStruct.GPIO_Pin = LED_G_GPIO_PIN;
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(LED_G_GPIO_PORT, &GPIO_InitStruct);
	
}	

注意:具体打开哪个时钟还是要通过查阅数据手册,看我们需要初始化的外设具体在哪个线程上,我们这里端口GPIOC在APB2的线程上,所以调用的是APB2时钟的打开函数

点灯或熄灭灯(LED的H文件)

其实,灯的亮灭是通过高低电压来控制的

cpp 复制代码
#define ON 1
#define  OFF 0

// \C语言里面的续航符,要求后面不能有任何东西
#define LED_G(a)	if(a)\
				GPIO_ResetBits(GPIOC,GPIO_Pin_13); \
				else \
				GPIO_SetBits(GPIOC,GPIO_Pin_13);

而我们这里的 GPIO_ResetBits 和 GPIO_SetBits 两个函数是给指定的端口的引脚写入高低电压,

根据传入的a是ON或者OFF来写入电压

补充一个小灯反转的函数

cpp 复制代码
				
// ^ 异或,相同为0,不同为1
// 通过下面的异或可以实现每次按键就改变LED灯的ODR寄存器状态

#define LED_G_TOGGLE 	{LED_G_GPIO_PORT ->ODR ^= LED_G_GPIO_PIN;}

main函数

cpp 复制代码
void Delay( uint32_t count)
{
	for(;count != 0;count--);
}

int main(void)
{
	LED_GPIO_Config();
	
	while(1)
	{
		// GPIO_SetBits(GPIOC,GPIO_Pin_13);
		LED_G(OFF);
		Delay(0xFFFFF);
	  // GPIO_ResetBits(GPIOC,GPIO_Pin_13);
		LED_G(ON);
		Delay(0xFFFFFF);
	}
}

至此代码结束

相关推荐
嵌入式-老费28 分钟前
esp32开发与应用(从esp32到esp32s3)
嵌入式硬件
阿拉斯攀登43 分钟前
无人售货柜设备开机自动注册逻辑:唯一标识绑定、防重复、批量铺货适配
嵌入式硬件·安卓·零售·安卓驱动·无人售货柜·无人售货机
芯岭技术郦1 小时前
基于 XL2417D 的场控应援荧光棒芯片特性介绍
单片机·个人开发·信息与通信·射频工程
振南的单片机世界1 小时前
单片机:一颗芯片包办CPU、内存、外设的“单芯片计算机”
arm开发·stm32·单片机·嵌入式硬件
科学熊2 小时前
Keil(C51)安装和注册机被系统拦截问题解决
嵌入式硬件
三品吉他手会点灯2 小时前
嵌入式机器学习 - 学习笔记1.1.2 - 机器学习的局限性与伦理
人工智能·笔记·嵌入式硬件·学习·机器学习
Dlrb12113 小时前
51单片机--GPIO、按键、中断、蜂鸣器、PWM
单片机·嵌入式硬件·51单片机·定时器·中断
LuDvei13 小时前
STM32串行通信DMA的使用
stm32·单片机·嵌入式硬件
2401_8541515513 小时前
STM32 I2C 通信 HAL 库踩坑记录
stm32·单片机·嵌入式硬件
蒙塔基的钢蛋儿16 小时前
记一次 STM32H723 硬件 Bug 排查:写个 ETH 寄存器,SDRAM 数据飞了
stm32·嵌入式硬件·bug