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. 地址标记,SpringMVC转发与调用相关知识存档

    1.mytest_mavenprj1中,index的 <a href="login/login.html">点击登录</a> 与 <a href=&q ...

  2. cocos2d-x 之 CCArray 源码分析(2)

    cocos2d-x 自己实现了一个数组CCArray ,下面我们来分析一下CCArray的源码 CCArray继承CCObject,所以,CCArray也具有引用计数功能和内存自动管理功能. 数组的源 ...

  3. MQ安装配置

        (1)执行接受许可脚本: ./mqlicense.sh –accept  (2) 安装 WebSphere MQ for Linux 服务器: [root@localhost mq]# rpm ...

  4. [SmartFoxServer概述]使用文档

    如何使用文档和例子 这份文档提供了一份关于如何通过SmartFoxServer 2X(缩写SFS2X)文档掌握要点的快速教程.在使用例子和技术文档之前,我们建议先参考以下主题内容. 不管你是Smart ...

  5. React Native填坑之旅--Button篇

    从React过来,发现React Native(以下简称RN)居然没有Button.隔壁的iOS是有UIButton的,隔壁的隔壁的Android里也是有的.没有Button,就没有点击效果啊.这还真 ...

  6. ORACLE_簽核PROC帶游標

    CREATE OR REPLACE PROCEDURE SP_C_TXYYMM(VAPPLY_NO IN VARCHAR2,VUSER_NM IN VARCHAR2,VFAC_NO IN VARCHA ...

  7. ubuntu卸载java

    Try this command: java -version If 1.6* comes then try: sudo apt-get autoremove openjdk-6-jre If 1.7 ...

  8. Windows下Qt5搭建Android开发环境笔记

    Windows很大的特点是配置使用几乎都可以图形化进行,和Linux比起来在很多时候配置环境也要方便很多.所以,搭建Qt for Andorid也是十分简单的.需要以下工具: 1.最方便的Qt官方包, ...

  9. WPF快速入门系列(1)——WPF布局概览

    一.引言 关于WPF早在一年前就已经看过<深入浅出WPF>这本书,当时看完之后由于没有做笔记,以至于我现在又重新捡起来并记录下学习的过程,本系列将是一个WPF快速入门系列,主要介绍WPF中 ...

  10. C++ 升级到 Vs2013后编译设置

    编译 EasyDarwin 时,Vs2008的C++升级到 Vs2013时报错: 1. 找不到 windows.h 项目->属性->配置属性->C/C++->所有选项: 附加包 ...