2021-11-08
2021/11/8 23:14:46
本文主要是介绍2021-11-08,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、HAL库中断点亮LED灯
1.建项目部分
1.新建项目
file->new project
2.选择芯片
选择STM32F103C8
3.找到PA9,选择为GPIO——EXTI5中断模式
4.选择PA1设置为GPIO_Output
输出模式
5.设置引脚
PA1设置high
6.设置RCC和SYS
7,设置开启中断
8.设置时钟树
9.项目命名,然后生成项目
2、代码部分
在main.c添加
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { /* Prevent unused argument(s) compilation warning */ HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_1); //翻转电平 /* NOTE: This function Should not be modified, when the callback is needed, the HAL_GPIO_EXTI_Callback could be implemented in the user file */ }
3.运行结果
二、HAL库中断串口通信
1.项目
1.新建项目并设置usart1
设置sys和rcc(与以上一样)
2. 设置USART1使能中断
3.重复设置时钟树,项目命名。然后生成项目
2.代码部分
1.在main.c代码中添加
#define LENGTH 10 // 接收缓冲区大小 //定义缓冲区和标志位 uint8_t RxBuffer[LENGTH]; // 接收缓冲区 uint8_t Rxflag = 0; // 标志位,0为接收未完成,1为接
2.在while中添加
if (Rxflag == 1){ // 若数据接收完成 Rxflag = 0; // 清除标志位 HAL_UART_Transmit(&huart1, (uint8_t *)RxBuffer, 18, 0xFFFF); // 接收成功信息 // 发送接收到的字符 HAL_UART_Transmit_IT(&huart1, (uint8_t*)RxBuffer, LENGTH); }
3.在main.c中定义回调函数
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){ if (huart->Instance == USART1){ Rxflag = 1; // 设置标志位为1 HAL_UART_Receive_IT(&huart1, (uint8_t*)&RxBuffer, LENGTH); // 使能接收中断 } }
这篇关于2021-11-08的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南