USB 时钟可以一直使能。

如果CAN时钟没有使能,RAM 能被软件读写。(CANBus 不能发送和接受Message)

如果CAN时钟使能,RAM不能软件被写。 CANBus Core 控制此RAM区域。(CANBus 可以发送和接受Message)

CANBus 占用了 256 字节(地址范围 512 字节)。

开始区域是Filters[14] = (F0R0、F0R1), (F1R0、F1R1),  ... (F13R0、F13R1).

紧接着是 Rx0 FiFo[0], Tx0, Tx1, Tx2,  Rx0 FiFo[1], Rx0 FiFo[2], Rx1 FiFo[0], Rx1 FiFo[1], Rx1 FiFo[2]。

USB 可以使用后面的 256 字节。

具体分配可以是 : 8 个端点占用 8 * 8 = 64 Bytes (ADDR、CNT : TX、RX)

最好只使用 3 个端点 : (1) 控制端点 0 (2) In 端点 1 (3)Out 端点 2

控制端点 : 64 bytes

In 端点: 64 Bytes

Out 端点: 64 Bytes



         F8 FF   FF FF      // Filters[0]
F8 FF FF FF
F8 FF FF FF
F8 FF FF FF
F8 FF FF FF
F8 FF FF FF
F8 FF FF FF
F8 FF FF FF
F8 FF FF FF
F8 FF FF FF
000060A0 F8 FF FF FF
000060B0 F8 FF FF FF
000060C0 F8 FF FF FF
000060D0 F8 FF FF FF // Filters[13]

000060E0                    //Rx0 FIFO[0]
000060F0 AB CD EF

                    //Tx0
AB CD EF 0D //Tx1
AB CD EF //Tx2
AB CD EF

 0C                   //Rx0 FIFO[1]
AB CD EF //Rx0 FIFO[2]
AB CD EF 000061A0 1C //Rx1 FIFO[0]
000061B0 AB CD EF 000061C0 //Rx1 FIFO[1]
000061D0 000061E0 //Rx1 FIFO[2]
000061F0

                    //Unused Endpoint

00006250                    //EP0 -- Buffer Table @ 0x0250
C0 //EP1
C0 C0 //EP2

                    //EP0 Buffer
FF FF
000062A0
000062B0
000062C0
000062D0
000062E0
000062F0

                    //EP1 Buffer

 C0        C0
C0 FD 0A 6C
FD C0

                    //EP2 Buffer

000063A0
000063B0
000063C0 8E C2 B4
000063D0 EA 7C C3
000063E0 4A E1 F9 AC CB 3A
000063F0 F1 C0 7B 4F A2
USB    CAN          RAM

Dis    Dis     软件 (不可写入, 读取无意义) 硬件 (没有控制)
Dis En 软件 (不可写入, 读取无意义) 硬件 (CANBus控制)
En Dis 软件 (可写入, 可读取) 硬件 (USB控制)
En En 软件 (不可写入, 读取无意义) 硬件 (CANBus控制)

STM32 USB CAN 学习笔记 - 共享RAM的用法的更多相关文章

  1. stm32寄存器版学习笔记03 外部中断

    stm32的每个I/O口都可以作为中断输入,要把I/O口设置为外部中断输入,必须将I/O口设置为上拉/下拉输入 或 浮空输入(但浮空的时候外部一定要带上拉或下拉电阻,否则可能导致 中断不停的触发),干 ...

  2. stm32寄存器版学习笔记07 ADC

    STM32F103RCT有3个ADC,12位主逼近型模拟数字转换器,有18个通道,可测量16个外部和2个内部信号源.各通道的A/D转换可以单次.连续.扫描或间断模式执行. 1.通道选择 stm32把A ...

  3. stm32寄存器版学习笔记06 输入捕获(ETR脉冲计数)

    STM32外部脉冲ETR引脚:TIM1-->PA12;TIMER2-->PA0:TIMER3-->PD2;TIMER4-->PE0… 1.TIM2 PA0计数 配置步骤 ①开启 ...

  4. stm32寄存器版学习笔记05 PWM

    STM32除TIM6和TIM7外都可以产生PWM输出.高级定时器TIM1和TIM8可以同时产生7路PWM,通用定时器可以产生4路PWM输出. 1.TIM1 CH1输出PWM配置步骤 ①开启TIM1时钟 ...

  5. JUC学习笔记——共享模型之管程

    JUC学习笔记--共享模型之管程 在本系列内容中我们会对JUC做一个系统的学习,本片将会介绍JUC的管程部分 我们会分为以下几部分进行介绍: 共享问题 共享问题解决方案 线程安全分析 Monitor ...

  6. JUC学习笔记——共享模型之内存

    JUC学习笔记--共享模型之内存 在本系列内容中我们会对JUC做一个系统的学习,本片将会介绍JUC的内存部分 我们会分为以下几部分进行介绍: Java内存模型 可见性 模式之两阶段终止 模式之Balk ...

  7. 触发器学习笔记(:new,:old用法)

    触发器学习笔记(:new,:old用法) 触发器是数据库发生某个操作时自动运行的一类的程序         用于保持数据的完整性或记录数据库操作信息方面         触发器不能够被直接调用,只能够 ...

  8. JAVA学习笔记 (okHttp3的用法)

    最近的项目中有个接口是返回文件流数据,根据我们这边一个验签的插件,我发现里面有okHttpClient提供了Call.Factory,所以就学习了下okHttp3的用法. 1.概述 okhttp是一个 ...

  9. Linux学习笔记共享

    从学习到现在,已经3个月了,还有不到一个月linux课程就要结束,大概的情况如下: 预科一周,主要是学习了网络,思科的内容 linux基础课程,从无到有 linux shell 脚本 linux项目实 ...

随机推荐

  1. 剑指offer题目31-40

    面试题31:连续字数组的最大和 public class Solution { public int FindGreatestSumOfSubArray(int[] array) { int len ...

  2. JAVA基础之两种核心机制

    突然之间需要学习Java,学校里学的东西早就忘记了,得用最短的时间把Java知识理顺,重点还是J2EE,毕竟所有的ava项目中95%都是J2EE,还是先从基础的J2SE学起吧....... 首先是了解 ...

  3. Silverlight C1.Silverlight.FlexGrid 表格动态列

    很多时候,我们对于表格展示的数据,需要根据条件不停的变化,这就需要表格列能动态生成,即没有Model的概念(万物始于无形).先上主要代码: 一.根据参数绑定列定义 二.根据数据动态创建数据对象,并添加 ...

  4. SQL语言和DML相关操作以及相应的运算符

    SQL 1.结构化查询语言 2.特点 a.第四代编程语言,更接近自然语言 b必须有数据库系统解释执行 c.对象名,关键字不区分大小写 d.字符串必须要用单引号引起来,不能用双引号 e.每条语句最后用分 ...

  5. 【洛谷P1941】飞扬的小鸟

    f [ i ] [ j ] 表示横坐标为 i ,高度为 j 时的最小点击次数 分别dp处理: 1.上升,(1)<m (2)>=m 2.下降 3.管道 #include<cstdio& ...

  6. Static Constructors

    A static constructor is used to initialize any static data, or to perform a particular action that n ...

  7. hdu 5102 树上前k短路径长度和

    http://acm.hdu.edu.cn/showproblem.php?pid=5102 给一棵树,求出所有节点的距离中前k小的路径长度和 由于路径长度的定义为两点之间的边的个数,所有遍历1~n- ...

  8. Android--持久化技术

    1.Android中的持久化技术主要有三种: 1)文件存储: 2)SharedPreference存储: 3)数据库存储(SQLite);2.文件存储: 1)Context 类中提供了一个 openF ...

  9. RaisingStudio.SessionFactory 发布 0.1版

    功能描述: 1. 支持Orchard中方便使用自定义数据库连接. 2. 连接信息可配置. 用法: 1. 构造函数中添加IRepositoryFactory引用 private readonly IRe ...

  10. 解决linux下oracle-11g打不开dbca问题

    linux下oracle安装完毕后,出现建立数据库命令dbca无法使用问题,如图: 解决办法: 在32位的linux环境下,安装32位oracle11g会有这个bug,主要装个补丁(patch nam ...