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

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

于 2022-03-21 发布 文件大小:1.27 MB
0 175
下载积分: 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 个回复

  • 灵信LED屏C#DEMO程序(上位机PC端)
    做LED控制卡程序时提供的简单DEMO,里面的接口可实现动态与静态文字效果
    2022-01-24 18:29:56下载
    积分:1
  • 周立功smartARM2300 UCOS工程模块,基于广告的发展,内部发展。
    ZLG SmartARM2300的UCOS工程模块,基于ADS开发,内部包含驱动库,可以很方便的加入到ADS开发环境中-ZLG SmartARM2300 uCOS works of modules, based on ADS development, the internal database contains the driver, can be easily added to the ADS development environment
    2022-09-09 10:25:03下载
    积分:1
  • fpga 健身器自行车控制器
    用fpga实现的健身器自行车控制器,有两种模式,第一种模式下,f启动,选择1模式,e确定。选择强度e确定,d开始。第二种模式下f启动,选择2模式,e确定,选择强度,e确定,输入训练时间,c清楚,e确定,d开始。最后三秒钟有led灯亮起提示。
    2022-03-22 01:20:06下载
    积分:1
  • zigbee实验集合包cc2530实验源码及文档
    zigbee实验集合包cc2530实验源码及文档zigbee实验集合包cc2530实验源码及文档zigbee实验集合包cc2530实验源码及文档zigbee实验集合包cc2530实验源码及文档zigbee实验集合包cc2530实验源码及文档zigbee实验集合包cc2530实验源码及文档zigbee实验集合包cc2530实验源码及文档
    2023-02-21 12:30:04下载
    积分:1
  • 2440启动代码,可供血液以及我做的学生来回学习…
    2440启动代码,提供给和我一样血药学习ARM的学子们 -2440 startup code, available to the blood as well as I do the students learn from ARM
    2022-01-26 08:10:59下载
    积分:1
  • LPC1788 RTC
    本示例描述如何校准 RTC / * 在此示例中: * 假设 RTC 需要定期调整后每隔 5 秒. * 和时间计数器需要通过增加计数器,而不是 1 2 * 我们将通过串行显示校准后观察定时计数器 */
    2023-04-06 19:55:02下载
    积分:1
  • 长的ARM9 FS2410
    优龙的ARM9 FS2410开发板原码,含大量测试程序!如LCD,TOUCH SCREEN,IIC,IIS,KEY,RTC,UART都有了。极有参考学习价值,推荐下载!-Long ARM9 FS2410-source development board, with a large number of test procedures! As LCD, TOUCH SCREEN, IIC, IIS, KEY, RTC, UART have everything. Most reference value of learning, to download!
    2023-07-18 08:20:03下载
    积分:1
  • TI dspf2812外部中断源,
    TI DSPF2812外部中断源码,-TI DSPF2812 external interrupt source,
    2022-07-27 11:12:38下载
    积分:1
  • S3C2410上GPS模块的驱动代码.ADS1.2编译工程,附文档.
    S3C2410上GPS模块的驱动代码.ADS1.2编译工程,附文档.-S3C2410 on GPS module driver code. ADS1.2 compiler works attached document.
    2022-03-04 13:47:58下载
    积分:1
  • PIC18定时器初始化
    pic18 TIMER INITIALIZATION
    2022-07-15 19:12:09下载
    积分:1
  • 696518资源总数
  • 105873会员总数
  • 12今日下载