[DemoCode下载] M451系列UART通过FIFO加TIMEOUT的方式接收一帧任意长度的数据

[复制链接]
4962|8
 楼主| YWBIN 发表于 2015-7-8 15:06 | 显示全部楼层 |阅读模式
该DemoCode的功能为:UART通过FIFO加TIMEOUT的方式实现接收一帧任意长度的数据,接收完一帧数据后就将接收的数据打印出来。有需要的朋友可以参考下。

M451_UART_FIFO_AND_TIMEOUT.rar

439.22 KB, 下载次数: 254

gaoyang9992006 发表于 2015-7-8 15:39 | 显示全部楼层
看一看这个任意长度帧是如何实现的。
gaoyang9992006 发表于 2015-7-8 15:41 | 显示全部楼层
*---------------------------------------------------------------------------------------------------------*/
/* ISR to handle UART Channel 0 interrupt event                                                            */
/*---------------------------------------------------------------------------------------------------------*/
void UART0_IRQHandler(void)
{
    uint8_t i = 0;
    uint32_t u32IntSts = UART0->INTSTS;

    if(u32IntSts & UART_INTSTS_RDAINT_Msk)
    {
        for(i=0;i<13;i++)
        {
            g_u8RecData[g_u32RecSize++] = UART_READ(UART0);
        }
    }

    if(u32IntSts & UART_INTSTS_RXTOINT_Msk)
    {
        while(UART_GET_RX_EMPTY(UART0) == 0)
        {
            g_u8RecData[g_u32RecSize++] = UART_READ(UART0);
            g_u8ReceiveFlag = 1;
        }
    }
}
cowboy2014 发表于 2015-7-9 09:00 | 显示全部楼层
看看串口是如何实现接收任意一帧长度的数据
wode112233 发表于 2015-8-20 20:37 | 显示全部楼层
学习下
yiyigirl2014 发表于 2015-8-20 20:44 | 显示全部楼层
UART通过FIFO加TIMEOUT的方式实现接收一帧任意长度的数据,接收完一帧数据后就将接收的数据打印出来?
怎么修改那个Printf呢?
mintspring 发表于 2015-8-21 11:56 | 显示全部楼层
UART通过FIFO加TIMEOUT的方式实现接收一帧任意长度的数据?
FIFO,就是先进先出的方式
syokujinau 发表于 2017-1-17 23:10 | 显示全部楼层
谧芸 发表于 2017-3-26 12:50 | 显示全部楼层
哈哈,好巧妙的用法,满足触发条件时不读完接收缓存的数据
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

46

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部