STM32 USB CAN 学习笔记 - 共享RAM的用法
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的用法的更多相关文章
- stm32寄存器版学习笔记03 外部中断
stm32的每个I/O口都可以作为中断输入,要把I/O口设置为外部中断输入,必须将I/O口设置为上拉/下拉输入 或 浮空输入(但浮空的时候外部一定要带上拉或下拉电阻,否则可能导致 中断不停的触发),干 ...
- stm32寄存器版学习笔记07 ADC
STM32F103RCT有3个ADC,12位主逼近型模拟数字转换器,有18个通道,可测量16个外部和2个内部信号源.各通道的A/D转换可以单次.连续.扫描或间断模式执行. 1.通道选择 stm32把A ...
- stm32寄存器版学习笔记06 输入捕获(ETR脉冲计数)
STM32外部脉冲ETR引脚:TIM1-->PA12;TIMER2-->PA0:TIMER3-->PD2;TIMER4-->PE0… 1.TIM2 PA0计数 配置步骤 ①开启 ...
- stm32寄存器版学习笔记05 PWM
STM32除TIM6和TIM7外都可以产生PWM输出.高级定时器TIM1和TIM8可以同时产生7路PWM,通用定时器可以产生4路PWM输出. 1.TIM1 CH1输出PWM配置步骤 ①开启TIM1时钟 ...
- JUC学习笔记——共享模型之管程
JUC学习笔记--共享模型之管程 在本系列内容中我们会对JUC做一个系统的学习,本片将会介绍JUC的管程部分 我们会分为以下几部分进行介绍: 共享问题 共享问题解决方案 线程安全分析 Monitor ...
- JUC学习笔记——共享模型之内存
JUC学习笔记--共享模型之内存 在本系列内容中我们会对JUC做一个系统的学习,本片将会介绍JUC的内存部分 我们会分为以下几部分进行介绍: Java内存模型 可见性 模式之两阶段终止 模式之Balk ...
- 触发器学习笔记(:new,:old用法)
触发器学习笔记(:new,:old用法) 触发器是数据库发生某个操作时自动运行的一类的程序 用于保持数据的完整性或记录数据库操作信息方面 触发器不能够被直接调用,只能够 ...
- JAVA学习笔记 (okHttp3的用法)
最近的项目中有个接口是返回文件流数据,根据我们这边一个验签的插件,我发现里面有okHttpClient提供了Call.Factory,所以就学习了下okHttp3的用法. 1.概述 okhttp是一个 ...
- Linux学习笔记共享
从学习到现在,已经3个月了,还有不到一个月linux课程就要结束,大概的情况如下: 预科一周,主要是学习了网络,思科的内容 linux基础课程,从无到有 linux shell 脚本 linux项目实 ...
随机推荐
- Sql Server 孤立用户解决办法
Sql Server 孤立用户 是我们经常遇到的事情,今天详细的梳理了下,希望能帮到你 当把用户数据库从一台 Sql Server 使用备份和恢复的方式迁移到另一台服务器.数据库恢复以后,原先用户定义 ...
- [python] 线程池
特别感谢simomo 什么是线程池? 诸如web服务器.数据库服务器.文件服务器和邮件服务器等许多服务器应用都面向处理来自某些远程来源的大量短小的任务.构建服务器应用程序的一个过于简单的模型是:每当一 ...
- oracle 多级菜单查询 。start with connect by prior
select * from S_dept where CODE in(select sd.code from s_dept sd start with sd.code='GDKB' connect b ...
- display:line-block和blaock的区别
1.使用inline-block 会产生了元素间的空隙 2.line-block主要的用处是用来处理行内非替换元素的高宽问题的!行内非替换元素,比如span.a等标签,正常情况下士不能设置宽高的,加上 ...
- C# 基础(6)--Winform
WinForm 简称,Windows Form ,调用.Net框架. Return 只是退出当前方法. MessageBox.Show("输入的Email地址是非法的!"); 把整 ...
- linux下杀死进程(kill)的N种方法
常规篇: 首先,用ps查看进程,方法如下: $ ps -ef ……smx 1822 1 0 11:38 ? 00:00:49 gnome-terminalsmx ...
- 【洛谷P1541】乌龟棋
四维dp #include<cstdio> #include<cstring> using namespace std; ; ],a,b,c,d,n,m; int max(in ...
- iOS 汉字转拼音
- (NSString *)getFirstString:(ICCustom *)custom { NSMutableString *source = [custom.merchantAbbr ...
- ubuntu 挂载新硬盘
http://www.cnblogs.com/hnrainll/archive/2012/02/27/2369331.html
- mono for android代码记录1 WebClient Post数据到Nopcommerce(post数据到MVC5)
WebClient Post数据到Nopcommerce(post数据到MVC5) 注意事项 1.把[ValidateAntiForgeryToken]注释掉,以后再处理CSRF攻击.现在学习先不理 ...