-
NS954X tuner solution source code with RDS function
NS954X tuner solution source code with RDS function
- 2022-09-03 19:55:03下载
- 积分:1
-
ADC code for LPC2114
ADC code for LPC2114
- 2022-02-07 22:20:24下载
- 积分:1
-
STC89C52 EEPROM的驱动代码,带功能测试
STC89C52 EEPROM的驱动代码,带功能测试-STC89C52 EEPROM driver code, with functional tests
- 2022-03-29 18:01:37下载
- 积分:1
-
arm实现的CAN局域网程序,以模拟发生和接收为住。
arm实现的CAN局域网程序,以模拟发生和接收为住。-arm to achieve CAN LAN procedures in order to simulate the occurrence and receiving of living.
- 2022-07-02 13:29:07下载
- 积分:1
-
Samsung 7" 800x480 LCD
Samsung 7" 800x480 LCD
- 2022-03-21 20:26:20下载
- 积分:1
-
DC motor contro use Pic18f4431
DC motor contro use Pic18f4431
- 2022-08-14 01:51:48下载
- 积分:1
-
第1 章 体系结构
第1 问:
Q:请问在初始化CPU 堆栈的时候一开始在执行mov r0, LR 这句指令时处理器是什么模式
A:复位后的模式,即...
第1 章 体系结构
第1 问:
Q:请问在初始化CPU 堆栈的时候一开始在执行mov r0, LR 这句指令时处理器是什么模式
A:复位后的模式,即管理模式.-Chapter 1, paragraph 1 architecture question: Q: Will the CPU to initialize the stack at a time when one start in the implementation of mov r0, LR this command mode when the processor is A: the post-reset mode, that is, management.
- 2023-08-02 19:35:03下载
- 积分:1
-
单片机STM32f103 串口boot程序(附带设计文档)
单片机STM32f103 串口boot程序,可用于串口升级使用,附带设计文档资料
- 2023-08-20 04:20:04下载
- 积分:1
-
development arm, for the linux environment of some important configuration proce...
arm开发,基于linux环境的一些重要的配置程序。-development arm, for the linux environment of some important configuration procedures.
- 2022-03-03 08:34:02下载
- 积分:1
-
绝对原创,开源一STM32项目,CAN,UART,Input检测 原创相对高效性能与代码重用平衡思路(缓冲队列加软中断),可直接做工程模板
1、CAN收发队列
使用内存FIFO缓冲CAN帧,适合大数据量通信;并使用内部软中断处理CAN数据,相当于事件响应,综合应该比查询方式节省不少时间,也应该比OS调度省点时间。Can.C:底层处理,Communi.C:与应用层高相关。 应用层处理流程用函数指针表的方式调用减少代码量及阅读整齐;实现CAN各种错误记录机制。已初步测试,该机制可用。
CAN处理流程:
接收:CAN1_RX0_IRQHandler_Name (void), CAN1_RX1_IRQHandler(void)
接收中断,CAN_QueueWriteQuick()将当前的有效报文压入内存FIFO,压入的数据为整个CAN邮箱数据,所以后续的处理函数可以分辨出完整的数据。
void CAN1_RX0_IRQHandler_Name (void) // CAN1_RX0_IRQHandler_Name
{
/*
FIFO从空状态开始,在接收到第一个有效的报文后,FIFO状态变为挂号_1(pending_1),
硬件相应地把CAN_RFR寄存器的FMP[1:0]设置为’01’(二进制01b)。
软件可以读取FIFO输出邮箱来读出邮箱中的报文,然后通过对CAN_RFR寄存器的RFOM位
设置’1’来释放邮箱,这样FIFO又变为空状态了。如果在释放邮箱的同时,
又收到了一个有效的报文,那么FIFO仍然保留在挂号_1状态,软件可以读取FIFO
输出邮箱来读出新收到的报文。
如果应用程序不释放邮箱,在接收到下一个有效的报文后,FIFO状态变为
挂号_2(pending_2),硬件相应地把FMP[1:0]设置为’10’(二进制10b)。
重复上面的过程,第三个有效的报文把FIFO变为挂号_3状态(FMP[1:0]=11b)。
此时,软件必须对RFOM位设置1来释放邮箱,以便FIFO
- 2022-03-21 07:31:29下载
- 积分:1