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项目实 ...
随机推荐
- arcgis学习
将使用arcgis的一些技巧记下来,以供翻阅 1.判断点在面内 insert into grid_res_relation (GRIDID, GRIDTYPE, RESID, restype, typ ...
- C++函数模版
如果对于两种不同类型的数值进行比较,可能会写出以下的代码: int compare(const string &v1, const string &v2) { if (v1 < ...
- Memcache的使用基本介绍
Memcache学习总结2-Memcache的使用基本介绍 上一次总结中我们已经安装部署好了Memcached,并且把PHP扩展Memcache也安装好了,这一节我们详细学习一下PHP扩展Memcac ...
- HTTP02--Http请求头及缓存知识
一.常用工具 Linux下:curl命令,I参数可以查看http head信息. Firefox:Firebug.HttpFox 二.常见Http Head信息 三.浏览器缓存机制 使用ctrl+F5 ...
- SQLSERVER拯救某个时间点被误删除的数据
SQLSERVER拯救某个时间点被误删除的数据 转载自:http://blog.csdn.net/dba_huangzj/article/details/8491327 要拯救某个时间点被误删除的数据 ...
- Magicodes.WeiChat——多租户的设计与实现
概要 多租户(Multi Tenancy/Tenant)是一种软件架构,其定义是:在一台服务器上运行单个应用实例,它为多个租户提供服务. 本框架使用的是共享数据库.共享 Schema.共享数据表的数据 ...
- slick-pg v0.1.5 发布
这个版本的更新主要是: 增加了对 json 的支持 (PostgreSQL 9.3 正式版已经发布了,所以我适时加入了对 pg json 的支持.功能其实前两个星期就已经开发测试好了,但公司跟联邦政府 ...
- 46 个非常有用的 PHP 代码片段
在编写代码的时候有个神奇的工具总是好的!下面这里收集了 40+ PHP 代码片段,可以帮助你开发 PHP 项目. 这些 PHP 片段对于 PHP 初学者也非常有帮助,非常容易学习,让我们开始学习吧- ...
- WP8.1:关于屏幕尺寸和分辨率的那些事儿
目前市面上的Windows Phone设备越来越多,尺寸和分辨率也越来越多,特别是WP8.1时代的到来.做过wp开发的人都知道应用适配其实较安卓要简单太多了,其中有一个重要原因,就是微软号称所有WP设 ...
- 用c#开发微信 (10) JS-SDK 基本用法- 分享接口“发送到朋友”
微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包.通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享. ...