STM32f103 can的两个接收fifo使用方法

发布者:DreamySunset最新更新时间:2019-09-30 来源: eefocus关键字:STM32f103  can  接收fifo  使用方法 手机看文章 扫描二维码
随时随地手机看文章

stm32的文档上说can有两个接收fifo,但是对具体怎么使用并没有特别提到,在网上也没有找到靠谱或者统一的说法


我看了几个例子和文档也没发现具体怎么设置使用哪个fifo
今天仔细的看了下文档里的图片,突然想到fifo可能是在设置filter的时候启用的,然后测试了下证实了想法




可以看看can的几个例子,filter是必须设置的,不然没法收到数据,而使用哪个fifo就是图里标红的地方,看这一条设置规则对应的哪个fifo,那么这个fifo就能收到这个类型的数据
可以根据需要把不同的消息放到不同的fifo里去
 

 

中断的配置,fifo0和fifo1的中断名字不一样,这个要注意
 

其实中断函数的名字在:startup里的startup_stm32f10x_hd.s里有,自己找找看
 

记得开启fifo中断:
 

这个是fifo1的响应函数,设个中断就可以看到有数据进来了
 

大家可以把filter的配置里绑定的fifo1改成fifo0,那么对应的fifo0的中断就能收到数据了

从上面可以看到,fifo0和fifo1是暂存数据的,这两个fifo是给filter用的,也就是filter先过滤数据,发现需要接收就把这个数据放到filter表项里指定的fifo中去


关键字:STM32f103  can  接收fifo  使用方法 引用地址:STM32f103 can的两个接收fifo使用方法

上一篇:stm32 can中断通信
下一篇:CAN通信标准帧和扩展帧

推荐阅读最新更新时间:2024-10-23 14:55

STM32f103 can的两个接收fifo使用方法
stm32的文档上说can有两个接收fifo,但是对具体怎么使用并没有特别提到,在网上也没有找到靠谱或者统一的说法 我看了几个例子和文档也没发现具体怎么设置使用哪个fifo 今天仔细的看了下文档里的图片,突然想到fifo可能是在设置filter的时候启用的,然后测试了下证实了想法 可以看看can的几个例子,filter是必须设置的,不然没法收到数据,而使用哪个fifo就是图里标红的地方,看这一条设置规则对应的哪个fifo,那么这个fifo就能收到这个类型的数据 可以根据需要把不同的消息放到不同的fifo里去 中断的配置,fifo0和fifo1的中断名字不一样,这个要注意 其实中断函数的名字在:startup里的s
[单片机]
<font color='red'>STM32f103</font> <font color='red'>can</font>的两个<font color='red'>接收</font><font color='red'>fifo</font><font color='red'>使用方法</font>
STM32的CAN总线的接收FIFO使用方法
通过下面的框图我们可以看到,STM32F013有两个接收FIFO 但是实际的使用中如何让着两个FIFO都被使用呢,解决办法就在这里, 1. STM32F103有0-13共14个过滤器组,每个过滤器组都可以绑定指定的FIFO。 2. 特别需要注意的一点是,FIFO0和FIFO1的接收对应不同的中断入口,切记。 分别是 DCD USB_LP_CAN1_RX0_IRQHandler ; USB Low Priority or CAN1 RX0 DCD CAN1_RX1_IRQHandler ; CAN1 RX1 ================================================
[单片机]
STM32的<font color='red'>CAN</font>总线的<font color='red'>接收</font>双<font color='red'>FIFO</font><font color='red'>使用方法</font>
STM32F103标准库开发----CAN总线通信实验----发送和接收
一、CAN总线通信 发送 1. CAN总线通信发送配置流程 写入标识符 写入标识符类型(标准帧/扩展帧) 写入帧类型(远程帧/数据帧) 写入数据长度 写入数据 发送数据 2. CAN总线通信发送相关库函数 发送数据结构体: typedef struct { uint32_t StdId; /*! 指定标准标识符 该参数可以是0到0x7FF之间的值,11位数据 */ uint32_t ExtId; /*! 指定扩展标识符 该参数可以是0到0x1FFFFFFF之间的值,29位数据 */ uint8_t IDE; /*! 指定要传输的消息的标识符类型
[单片机]
如何使用带FIFO的串口来减少接收中断次数
本文介绍如何使用带FIFO的串口来减少接收中断次数,通过一种自定义通讯协议格式,给出帧打包方法;之后介绍一种特殊的串口数据发送方法,可在避免使用串口发送中断的情况下,提高系统的响应速度。 1、概述 在此之前,先来列举一下传统串口数据收发的不足之处: 每接收一个字节数据,产生一次接收中断。不能有效的利用串口硬件FIFO,减少中断次数。 应答数据采用等待发送的方法。由于串行数据传输的时间远远跟不上CPU的处理时间,等待串口发送完当前字节再发送下一字节会造成CPU资源浪费,不利于系统整体响应(在1200bps下,发送一字节大约需要10ms,如果一次发送几十个字节数据,CPU会长时间处于等待状态)。 应答数据采用中断发送。增加
[单片机]
如何使用带<font color='red'>FIFO</font>的串口来减少<font color='red'>接收</font>中断次数
msp430单片机接收(FIFO实现)不阻塞CPU
/**************** UART的高效率使用 串口接收一字节程序, 要求利用FIFO结构与接收中断 不阻塞CPU继续执行后续代码 且允许CPU随时读串口 Author:七禾页8 site:创客基地 *******************/ #include msp430x14x.h #include iic.h #define RXBUF_SIZE 32 //接收FIFO的最大容量 unsigned char RX_BUFF ; //接收FIFO缓冲区数组 unsigned int UART_InpLen = 0; //接收FIFO内待发出的字节数 unsigned int RX_IndexR
[单片机]
msp430单片机<font color='red'>接收</font>(<font color='red'>FIFO</font>实现)不阻塞CPU
一种可行的STM32F103外设RTC使用方法
前言 最近做的项目需要用RTC功能,记录掉上电时间。然后就开始琢磨STM32的RTC,在使用的过程中出现各种问题。搞的很是头痛。几经折腾,终于弄出一种稳定的使用方法。刚开始最大的问题就是掉电后时钟不走,代码改来该去,最后发现不管是第一次初始化还是每次上电运行,都需要打开PWR和BKP时钟。下面就把我的代码全贴出来,可以直接调用。 代码 #ifndef BSP_RTC_H #define BSP_RTC_H #include stm32f10x.h #include time.h //BCD码表示时间 typedef struct systemtime_tag { unsigned char year; unsi
[单片机]
STM32F103 PB3 PB4使用方法
今天调试PB3,用户普通IO,调试半天,还以为PCB问题,问题找了许久也没找到。有时候人麻木了,思考问题的思路就受限了,习惯性以为配置一下IO就可以用了,没有注意到PB3为JTAG共用IO,默认为JTAG状态,需要禁用JTAG才能使用。 DelayMS(2000); //建议延时一下,否则导致无法jtag、sw连接CPU,处理起来比较麻烦哦。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //必须执行这句 //GPIO_PinRemapConfig(GPIO_Rem
[单片机]
STM32F103的SysTick使用方法
写下来,方便以后用。 void SysTick_Configuration(void) { /* Setup SysTick Timer for 10 msec interrupts */ if (SysTick_Config(SystemCoreClock / 100)) //SysTick配置函数 { /* Capture error */ while (1); } /* Configure the SysTick handler priority */ NVIC_SetPriority(SysTick_IRQn, 0x0); //SysTick中断优先级设置 } 关键在
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved