-
绝对原创,开源一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
-
drive n96 lcd sam7x
使用ARM SAM7控制器在16位模式下使用ILI9325驱动程序驱动LCD N96。
- 2022-01-24 09:59:10下载
- 积分:1
-
for mips adm5120 uclibc
for mips adm5120 uclibc-0.9.19 toolchain
- 2022-01-30 12:38:23下载
- 积分:1
-
pwm sine.c
/*PWMSine.c
此程序说明了如何使用 PWM 通道 4 上
要输出正弦波 PWM 通道上的单个边缘模式。PCLK
设置为 15 兆赫和有没有 prescaling 这样 PWM 时钟
是 15 mhz。基准利率是设置为 100 H 这是 256 基
10 所以基地的 PWM 频率是在 15 MHz/256 = 58.95375 千赫。
*/
- 2022-01-27 16:59:44下载
- 积分:1
-
STM8学习风驰开源STM8寄存器版本例程
STM8学习,风驰开源STM8寄存器版本例程,I2C驱动程序
/******************** (C) COPYRIGHT 风驰iCreate嵌入式开发工作室 ********************
* 文件名 :main.c
* 描述 :串口通信
* 实验平台:iCreate STM8开发板
* 寄存器版本 :V1.0.0
* 作者 :ling_guansheng QQ:779814207
* 博客 :
*修改时间 :2011-12-20
**********************************************************************************/
- 2023-06-23 21:10:04下载
- 积分:1
-
使用LPC2131控制KM12864液晶显示屏实现绘图功能
使用LPC2131控制KM12864液晶显示屏实现绘图功能-KM12864 control using LPC2131 LCD graphics to achieve
- 2022-01-25 15:03:47下载
- 积分:1
-
SAMSUNG2440 BOOT CODE, SUPPORT SERIAL DOWNLOAD. COMPILED UNDER AXD.
SAMSUNG2440 BOOT CODE,SUPPORT SERIAL DOWNLOAD.COMPILED UNDER AXD.-SAMSUNG2440 BOOT CODE, SUPPORT SERIAL DOWNLOAD. COMPILED UNDER AXD.
- 2022-03-02 13:41:27下载
- 积分:1
-
使用硬件SPI接口与74HC595连接,控制74HC595驱动8个LED流水灯显示。...
使用硬件SPI接口与74HC595连接,控制74HC595驱动8个LED流水灯显示。-use of hardware and Bit SPI interface connectivity, control Bit-eight LED lights indicate water.
- 2022-03-04 18:26:50下载
- 积分:1
-
S3C2410 realize in the CAN bus protocol and driver, including driver source code...
在S3C2410上实现CAN总线的协议及驱动,包含驱动源代码,在ADS环境下开发-S3C2410 realize in the CAN bus protocol and driver, including driver source code, in the ADS environment to develop
- 2022-09-24 18:40:02下载
- 积分:1
-
这是LPC2119/2129/2292/2294通用的I2C通讯程序,供大家参考。集成有工程模板,直接可以使用。...
这是LPC2119/2129/2292/2294通用的I2C通讯程序,供大家参考。集成有工程模板,直接可以使用。-This is LPC2119/2129/2292/2294 generic I2C communication procedures, for your reference. Integrated Engineering has templates you can use directly.
- 2022-11-30 18:10:02下载
- 积分:1