硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3448|回复: 5
收起左侧

[FreeRTOS] FreeRTOS 串口HAL函数串口请教,版主和高手关注一下

[复制链接]

1

主题

0

回帖

3

积分

新手上路

积分
3
发表于 2019-9-6 17:20:05 | 显示全部楼层 |阅读模式
st提供的hal库函数,提供了三种串口的接收发发送函数,如何和FreeRTOS配合使用?
    (#) Blocking mode APIs are:
        (++) HAL_UART_Transmit()
        (++) HAL_UART_Receive()
        
    (#) Non Blocking mode APIs with Interrupt are:
        (++) HAL_UART_Transmit_IT()
        (++) HAL_UART_Receive_IT()
        (++) HAL_UART_IRQHandler()

    (#) Non Blocking mode functions with DMA are:
        (++) HAL_UART_Transmit_DMA()
        (++) HAL_UART_Receive_DMA()

第二种中断处理的的中断函数


void USARTx_IRQHandler(void)
{
  HAL_UART_IRQHandler(& UartHandle);
}

获取数据是调用函数
HAL_UART_Receive_IT(&UartHandle, (uint8_t *)aRxBuffer, RXBUFFERSIZE)

想实时处理来的数据。每次连续接收8字节的串口数据。

版主,这种的如何获取数据啊,如果要创建一个接收数据的任务?

第一次用系统。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2019-9-6 17:52:49 | 显示全部楼层
不需要任务接收了,进入串口中断的接收完成回调,说明已经接收完毕了。
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2019-9-8 12:18:46 | 显示全部楼层
eric2013 发表于 2019-9-6 17:52
不需要任务接收了,进入串口中断的接收完成回调,说明已经接收完毕了。

哦哦。
那我可以创建一个数据处理任务;和一个事件标志组;
vDataProcess()
{
........
    HAL_UART_Receive_IT(&UartHandle, (uint8_t *)aRxBuffer, RXBUFFERSIZE);
........
   //事件标志组等待函数
   EventGroupWait()......
   
}


//在 串口制定个数完成接收 以后的回调函数里面 添加一个事件标志组Give的函数
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle)
{
  /* Set transmission flag: transfer complete*/
  UartReady = SET;

  /* Turn LED3 on: Transfer in reception process is correct */
  BSP_LED_On(LED3);

//设置事件标志组的 标志位
EventGroupGive()
  
}

这样的思路对吗?@eric2013
回复

使用道具 举报

21

主题

48

回帖

111

积分

初级会员

积分
111
发表于 2019-9-8 14:47:49 | 显示全部楼层
@@eric2013 刚刚注册了账号,用微信登录,两天登录,两个独立的id号。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2019-9-9 00:09:01 | 显示全部楼层
冰糖葫_qexio 发表于 2019-9-8 12:18
哦哦。
那我可以创建一个数据处理任务;和一个事件标志组;
vDataProcess()

可以,就是这个思路
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2019-9-9 00:09:33 | 显示全部楼层
wxqhit 发表于 2019-9-8 14:47
@@eric2013 刚刚注册了账号,用微信登录,两天登录,两个独立的id号。

没事,用一个就行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-28 08:39 , Processed in 0.275983 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表