OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 11176|回复: 2

STM32F103关于CAN的接收FIFO深度的疑惑?

[复制链接]

11

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2011-9-23
在线时间
4 小时
发表于 2014-3-21 10:30:57 | 显示全部楼层 |阅读模式
 STM32F103拥有两个接收FIFO 0,1,每个具有三层深度。
Q1:可以设置FIFO深度吗,譬如每次我只需要一个深度,不需要三个接收深度可以吗?似乎没有类似的控制寄存器位可以设置。

Q2:三个深度具体的存储结构是什么,似乎官方材料里没有交代。


譬如现在,1,2,3分别进入FIFO三个深度,FMP=0x03。在ARM内部这三个报文的存储地址是连续的吗?1被取出,则指针指向2的位置?还是1被取出,2赋值到1的位置呢?
假如此时FMP=0x01,那2和3深度内此时存储的是什么呢?上次的报文还是被清空了?

Q3:RFLM控制FIFO溢出后的处理,请问如上图假如锁定很好理解,报文4直接扔掉,假如未锁定呢?报文4是覆盖报文3还是报文1呢?







正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-3-21 14:21:13 | 显示全部楼层
1,应该不能设置。
2,FIFO完全由硬件管理,不受软件控制,手册只说了512字节的SRAM,具体在什么地方,我也不知道。FIFO的意思就是先入先出,先写的数据,读的时候就先出来,所以,你说的读是读1位置的...
FMP=0x01的时候,表明深度是1。2,3,没有数据。至于是不是晴空了,我就没有研究了,你可以自己试试。
3,应该是覆盖最后一个。
假设深度是3,那么下一个数据就覆盖3位置的数据...1,2还是保留的。具体待测试。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
106
注册时间
2012-7-7
在线时间
2 小时
发表于 2014-7-10 20:18:57 | 显示全部楼层
MARK,CAN的FIFO三级深度在接收数据长度变化后未用到的FIFO是清空还是保留以前的值,确实需要注意,现在还不确定
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-6 05:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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