登录
首页 » 嵌入式芯片 » 绝对原创,开源一STM32项目,CAN,UART,Input检测 原创相对高效性能与代码重用平衡思路(缓冲队列加软中断),可直接做工程模板

绝对原创,开源一STM32项目,CAN,UART,Input检测 原创相对高效性能与代码重用平衡思路(缓冲队列加软中断),可直接做工程模板

于 2022-03-21 发布 文件大小:1.27 MB
0 387
下载积分: 2 下载次数: 2

代码说明:

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

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • ucos在ARM7上的移植,本源码适合运用在44B0芯片上,编译环境是ADS。...
    ucos在ARM7上的移植,本源码适合运用在44B0芯片上,编译环境是ADS。-ARM7 on uCOS in transplantation, this source suitable for use in the 44B0-chip, the compiler environment is ADS.
    2022-12-05 05:45:03下载
    积分:1
  • LPC2300系列ARM单
    LPC2300系列的ARM7单片机上FAT文件系统源代码,对开发文件系统很有帮助!-LPC2300 family of ARM7 single-chip on the FAT file system source code, file system on the development of very helpful!
    2022-03-24 10:04:42下载
    积分:1
  • samsungs3c4510doc development board is the user manual is very good
    samsungs3c4510doc 是其开发板的使用手册,非常好-samsungs3c4510doc development board is the user manual is very good
    2023-02-26 22:40:03下载
    积分:1
  • Yang Chong s3c2440 LED test code, a good reference!
    扬创s3c2440 LED测试代码,很有参考价值!-Yang Chong s3c2440 LED test code, a good reference!
    2022-01-22 16:45:33下载
    积分: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
  • 使用0.18um 标准 CMOS 的工艺设计,内嵌ASIX CORE(32 位RISC 内核,兼容ARM720T,带8KB 指令数 据Cache 和全功
    使用0.18um 标准 CMOS 的工艺设计,内嵌ASIX CORE(32 位RISC 内核,兼容ARM720T,带8KB 指令数 据Cache 和全功能MMU),采用冯诺依曼结构-Using 0.18um standard CMOS process design, embedded ASIX CORE (32 bit RISC core, compatible with ARM720T, with 8KB Data Cache directives and full-featured MMU), the use of the structure of von Neumann
    2023-04-20 11:50:03下载
    积分:1
  • 2812的ROM引导程序源代码,调试通过,可下载试用
    2812的ROM引导程序源代码,调试通过,可下载试用-2812 to guide the ROM source code, debugging through downloadable trial
    2022-05-08 05:06:17下载
    积分:1
  • drive n96 lcd sam7x
    使用ARM SAM7控制器在16位模式下使用ILI9325驱动程序驱动LCD N96。
    2022-01-24 09:59:10下载
    积分:1
  • 简单的LED闪烁arm32f4xx
    简单的闪烁的LED板open407v-d,coocox页 请点击左侧文件开始预览 !预览只提供20%的代码片段,完整代码需下载后查看 加载中 侵权举报
    2023-04-15 17:20:03下载
    积分:1
  • 4510 development board schematics (proven), with protelSDP open to change. The l...
    4510开发板电路原理图(已经验证),用protelSDP来打开修改。可以在制版-4510 development board schematics (proven), with protelSDP open to change. The lithographic
    2022-03-25 06:35:27下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载