CudeMX+Keil 学习笔记三中断开关点灯

本实验使用中断模式,用stm32F103核心板的GPIOC13端一管脚接一个LED,GPIOA0端口一引脚接一个开关。采用中断模式编程,当开关按下时,LED状态改变

1.在CudeMX设置PA0。

2.生成代码,打开Keil,可以在stm32f1xx_hal_gpio.c中看到中断服务函数

void HAL_GPIO_ EXTI_IRQHandler(uint16_t GPIO_Pin),跟中断回调函数void HAL_GPIO_ EXTI_Callback (uint 16_t GPIO_Pin);中断服务函数就是终止程序运行的函数,回调函数是程序在终止之后希望执行的操作。回调函数在中断服务函数之后。3.在gpio.c中实现中断服务函数里需要运行的代码: 

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
	for(long i = 1;i<72000;i++){}; //消除抖动
		if(HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin)==1)
		{
			HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);
		}
	__HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);

}

 

 4.观察到LED受按键控制

中断按键控制

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Git是一个分布式版本控制系统,而Keil是一款嵌入式开发工具。结合使用Git和Keil可以实现对嵌入式项目的版本控制和团队协作。下面是Git和Keil的使用方法: 1. 安装Git和Keil - 首先,你需要安装Git。你可以从官方网站下载并安装Git:https://git-scm.com/downloads - 然后,你需要安装Keil。你可以从Keil官方网站下载并安装Keil:https://www.keil.com/download/ 2. 创建Git仓库 - 在Keil中打开你的项目文件夹。 - 在命令行中进入到项目文件夹的根目录。 - 使用以下命令初始化Git仓库: ```shell git init ``` 3. 添加和提交文件 - 使用以下命令将所有文件添加到Git仓库: ```shell git add . ``` - 使用以下命令提交文件到Git仓库: ```shell git commit -m "Initial commit" ``` 4. 创建分支和切换分支 - 使用以下命令创建一个新的分支: ```shell git branch <branch_name> ``` - 使用以下命令切换到一个已存在的分支: ```shell git checkout <branch_name> ``` 5. 合并分支 - 使用以下命令切换到主分支: ```shell git checkout master ``` - 使用以下命令将一个分支合并到主分支: ```shell git merge <branch_name> ``` 6. 解决冲突 - 如果在合并分支时发生冲突,你需要手动解决冲突。打开冲突文件,编辑并保存解决冲突后的文件。 - 使用以下命令将解决冲突后的文件标记为已解决: ```shell git add <conflict_file> ``` - 使用以下命令继续合并分支: ```shell git merge --continue ``` 7. 推送和拉取代码 - 使用以下命令将本地代码推送到远程仓库: ```shell git push origin <branch_name> ``` - 使用以下命令从远程仓库拉取最新的代码: ```shell git pull origin <branch_name> ``` 8. 忽略文件 - 在Keil项目文件夹中创建一个名为`.gitignore`的文件。 - 在`.gitignore`文件中添加需要忽略的文件或文件夹的规则,例如: ``` *.bak *.obj *.o ``` 9. 使用GitHub Desktop - 如果你觉得在命令行中使用Git比较麻烦,你可以尝试使用GitHub Desktop。GitHub Desktop是一个图形化的Git客户端,可以简化Git的操作。 - 你可以从GitHub Desktop的官方网站下载并安装:https://desktop.github.com/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值