查看: 8482|回复: 10

[求助] 关于K60串口设置接收深度(FIFO)后数据怎么取出来的问题

[复制链接]

该用户从未签到

2

主题

5

帖子

0

新手上路

Rank: 1

积分
15
最后登录
1970-1-1
发表于 2014-7-13 17:58:27 | 显示全部楼层 |阅读模式
 最近因为想减少让单片机进入中断的频率,特地查了如何设置接收缓存深度,以免每接收一个字符就要中断。如下
UART1_PFIFO |= (UART_PFIFO_RXFE_MASK | UART_PFIFO_RXFIFOSIZE(3));
  UART1_RWFIFO|=UART_RWFIFO_RXWATER(8);
这样设置后,能在串口接收8个字节的数据后进入才进入中断,另外只有UART0/1才能设置,其他通道好像不行
然后问题来了,中断时进了,但是我怎么把缓存内的8个字节数据取出来??只有一个字节时是读UART_D这个寄存器,可是这个寄存器只有8位,也就是只存了一个字节,我接收的其它字节去哪了..实际断点调试也是只看到了第一个字节的数据。
求大神给个中断后取数据的范例
我知道答案 目前已有10人回答
回复

使用道具 举报

该用户从未签到

2

主题

5

帖子

0

新手上路

Rank: 1

积分
15
最后登录
1970-1-1
 楼主| 发表于 2014-7-14 09:04:20 | 显示全部楼层

回复:关于K60串口设置接收深度(FIFO)后数据怎么取出来的问题

 请别沉
回复 支持 反对

使用道具 举报

该用户从未签到

124

主题

3600

帖子

0

金牌会员

Rank: 6Rank: 6

积分
5781
最后登录
1970-1-1
发表于 2014-7-14 09:05:35 | 显示全部楼层

RE:关于K60串口设置接收深度(FIFO)后数据怎么取出来的问题

你好,楼主!
UART使能FIFO后,不是额外设置出多个寄存器存放接收到的数据,而是在UART内部使能了这样一个功能,如何读出UART FIFO内的数据,就只有通过多次读UART_D寄存器。
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

5

帖子

0

新手上路

Rank: 1

积分
15
最后登录
1970-1-1
 楼主| 发表于 2014-7-14 12:24:06 | 显示全部楼层

回复:关于K60串口设置接收深度(FIFO)后数据怎么取出来的问题

<div style="padding:5px;border:1px dashed #ccc;">回复第 3 楼 于2014-07-14 09:05:35发表:
恩恩,确实是这样

for(i=0;i
回复 支持 反对

使用道具 举报

该用户从未签到

124

主题

3600

帖子

0

金牌会员

Rank: 6Rank: 6

积分
5781
最后登录
1970-1-1
发表于 2014-7-14 13:52:34 | 显示全部楼层

RE:关于K60串口设置接收深度(FIFO)后数据怎么取出来的问题

如果使能了FIFO功能的话,中断来源与FIFO功能未使能不同,就接收方面的中断而言,FIFO只有接收到超过FIFO的长度才可以触发中断。
回复 支持 反对

使用道具 举报

该用户从未签到

37

主题

327

帖子

1

高级会员

Rank: 4

积分
886
最后登录
2023-7-19
发表于 2014-7-21 22:44:05 | 显示全部楼层

RE:关于K60串口设置接收深度(FIFO)后数据怎么取出来的问题

楼上正解。。~~ 相当于一个小dma.
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

3

帖子

0

新手上路

Rank: 1

积分
16
最后登录
2018-5-15
发表于 2015-4-1 22:19:05 | 显示全部楼层
FSL_TICS_ZP 发表于 2014-7-14 09:05
你好,楼主!
UART使能FIFO后,不是额外设置出多个寄存器存放接收到的数据,而是在UART内部使能了这样一个 ...

你好,请问这个中断是串口中断吗??
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

3

帖子

0

新手上路

Rank: 1

积分
16
最后登录
2018-5-15
发表于 2015-4-1 22:21:31 | 显示全部楼层
你好,你的FIFO串口中断可行吗?
回复 支持 反对

使用道具 举报

该用户从未签到

124

主题

3600

帖子

0

金牌会员

Rank: 6Rank: 6

积分
5781
最后登录
1970-1-1
发表于 2015-4-2 10:17:47 | 显示全部楼层
raznal 发表于 2015-4-1 22:19
你好,请问这个中断是串口中断吗??

是的!!
回复 支持 反对

使用道具 举报

该用户从未签到

9

主题

219

帖子

0

高级会员

Rank: 4

积分
653
最后登录
2017-11-19
发表于 2015-4-24 17:17:57 | 显示全部楼层
先看看缓冲区有多少数据,然后使用一个循环一次读出来不就行了。这样的高端的还有FIFO,确实挺好用的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-23 11:57 , Processed in 0.105910 second(s), 31 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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