接上文,我们在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库以支持不定长数据接收,简化了底层编程。
本文介绍了如何在STM32L4xx平台上,通过LED灯应用,利用串口中断配合DMA和USART1实现数据接收与任务通知,更新了HAL库以支持不定长数据接收,简化了底层编程。
           最低0.47元/天 解锁文章
最低0.47元/天 解锁文章
                           
                       
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   2092
					2092
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            