接上文,我们在LED灯的基础上加入串口中断,首先在CubeMX中使能DMA和USART1,串口保持默认配置即可,打开串口中断:


我们更新代码后打开keil软件,在工程中新建一个uart1recv.c文件以及该文件的.h文件:
在uart1recv..h文件中添加以下代码:
#ifndef __UART1RECV_H
#define __UART1RECV_H
void Uart1Recv_Task(void const * argument);
#endif /* __UART1RECV_H */
uart1recv.c文件中添加以下代码:
#include "uart1recv.h"
#include "cmsis_os.h"
#include "usart.h"
uint8_t UART1_RxBuf[256];
uint8_t UART1_TxBuf[256];
volatile uint16_t UART1_RecvLength=0;
volatile uint16_t UART1_SendLength=0;
void Uart1Recv_Task(void const * argument)
{
osEvent event;
osStatus status;
for(;;)
{
event=osSignalWait(0x01,osWaitForever

本文介绍了如何在STM32L4xx平台上,通过LED灯应用,利用串口中断配合DMA和USART1实现数据接收与任务通知,更新了HAL库以支持不定长数据接收,简化了底层编程。
最低0.47元/天 解锁文章
2111

被折叠的 条评论
为什么被折叠?



