-
绝对原创,开源一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
-
基于S3C2440,K9F1G08U0A NAND Flash器件,实现向NAND Flash的某个块写数据,然后从这个块读出数据。...
基于S3C2440,K9F1G08U0A NAND Flash器件,实现向NAND Flash的某个块写数据,然后从这个块读出数据。-Based on S3C2440, K9F1G08U0A NAND Flash devices, to achieve a block to the NAND Flash write data, and then read data from this block.
- 2022-08-08 05:15:28下载
- 积分:1
-
16路舵机控制程序
16路舵机控制程序。可以同时控制16个舵机,既可以手动控制,也可以从文件读入数据控制。可以完成小型机器人的常见动作
- 2022-01-26 02:21:59下载
- 积分:1
-
ucgui that porting to 2410 processor
ucgui that porting to 2410 processor
- 2023-04-12 04:25:03下载
- 积分:1
-
S3C2440的DHT11驱动开发及使用
应用背景通过了解DHT11温湿度传感器模块的驱动开发能够很快的掌握linux系统下的驱动开发流程。该实验代码能够为驱动开发的学习提供很好的指导。该驱动应用于s3c2440芯片的开发平台。关键技术dht11温湿度传感模块,通过GPIO口与嵌入式开发板连接。在拥有linux内核的系统中编辑dht11驱动程序,使开发板能够显示dht11传感器收集到的实时数据。通过这个过程来熟悉嵌入式系统下的驱动开发流程。
- 2022-07-23 15:28:04下载
- 积分:1
-
三星arm4510 Bootloader的实现与分析,包括源代码…
三星Arm4510 bootloader的实现与分析 包括源码和源码分析解释说明,是Arm学习者的好参考-Samsung Arm4510 Bootloader the Implementation and Analysis, including source code and source code analysis explanation, Arm learners is a good reference
- 2022-03-18 06:49:45下载
- 积分:1
-
NXP的LPC2468开发板光盘,深圳优龙科技开发板,IAR下测试通过
NXP的LPC2468开发板光盘,深圳优龙科技开发板,IAR下测试通过-NXP
- 2022-05-27 02:59:53下载
- 积分:1
-
DSP28335 SCI
应用背景Dsp28335 的寄存器设置等等, 与上位机进行通信。 有助于初学28335的本科生,研究生。 也有助于工程技术开发人员进行二次开发关键技术
#include "DSP28x_Project.h"// Device Headerfile and Examples Include File
interrupt void scibTxFifoIsr(void);//fifo发送中断函数
interrupt void scibRxFifoIsr(void);//fifo接收中断函数
void scib_fifo_init(void);//scib fifo模式 初始化函数
char buffer [100];//数据缓冲数组
void main(void)
{
Uint16 i;
InitSysCtrl();//系统时钟等初始化
InitSciGpio();//sci端口初始化
DINT; //关掉中断
InitPieCtrl(); //pie模块初始化
IER = 0x0000;//关cpu中断
IFR = 0x0000;//清cpu中断标志
- 2022-01-25 23:28:42下载
- 积分:1
-
编写ARM程序的好帮手!这是ARM指令集!
编写ARM程序的好帮手!这是ARM指令集!-ARM program write a good helper! This is the ARM instruction set!
- 2023-07-14 15:35:03下载
- 积分:1
-
arm基础学习的东东,很实用,初学者请留意哇
arm基础学习的东东,很实用,初学者请留意哇-for junior of arm studing
- 2023-05-11 22:20:02下载
- 积分:1