嵌入式开发控制LED灯的亮灭

这篇具有很好参考价值的文章主要介绍了嵌入式开发控制LED灯的亮灭。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、创建项目

背景:

用stm32F103核心板的GPIOA端一管脚接一个LED,GPIOB端口一引脚接一个开关(用杜邦线模拟代替)。采用中断模式编程,当开关接高电平时,LED亮灯;接低电平时,LED灭灯。

1、选好自己需要的开发板(这里使用的STM32F103C8T6的开发板)

嵌入式开发控制LED灯的亮灭

2、引脚配置

A4输出控制灯的亮灭,设置为GPIO_Output
A1持续输出高电平,设置同上
A7持续输出低电平,设置同上
C13个人习惯开启做测试用,设置同上
B5模拟开关,设置为GPIO_EXTI5

嵌入式开发控制LED灯的亮灭

3、EXIT配置

勾选上如图所示的选项
嵌入式开发控制LED灯的亮灭

4、配置SYS

将其中的Debug设置为“Serial Wire”
嵌入式开发控制LED灯的亮灭

5、配置GPIO

把A1配置为高电平、A7配置为低电平
把B5中断配置为上升沿和下降沿都触发

嵌入式开发控制LED灯的亮灭

嵌入式开发控制LED灯的亮灭
这里将PA4取别名为LED_A4,将PB5取别名为SWITCH

6、项目配置

嵌入式开发控制LED灯的亮灭
嵌入式开发控制LED灯的亮灭

二、Keil配置

1、配置

嵌入式开发控制LED灯的亮灭

2、自己编写函数

在stm32f1xx_hal_gpio.c中找到HAL_GPIO_EXTI_Callback函数。该函数是给用户自己重写的,可以在这里根据不同的中断来执行不同的处理。在这里我们需要根据B5的不同中断来实现A4的亮灭。
嵌入式开发控制LED灯的亮灭
并将如下代码插入到函数中

if(GPIO_Pin == SWITCH_Pin)
{
	//获取B5的电位
	GPIO_PinState pinState = HAL_GPIO_ReadPin(SWITCH_GPIO_Port,SWITCH_Pin);

	//低电位
	if(pinState==GPIO_PIN_RESET)
	HAL_GPIO_WritePin(LED_A4_GPIO_Port,LED_A4_Pin,GPIO_PIN_RESET);//把A4变为低电位
	//高电位
	else
	HAL_GPIO_WritePin(LED_A4_GPIO_Port,LED_A4_Pin,GPIO_PIN_SET);//把A4变为高电位
}

3、编译生成.hex文件

4、烧录程序

选择刚才编译生成的.hex文件,并将其烧录到芯片中
嵌入式开发控制LED灯的亮灭

三、结果

嵌入式开发控制LED灯的亮灭文章来源地址https://www.toymoban.com/news/detail-489152.html

到了这里,关于嵌入式开发控制LED灯的亮灭的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包