当前位置: 首页 > wzjs >正文

网站的做代理商软文范例300字

网站的做代理商,软文范例300字,昆山专业网站建设公司哪家好,网站建设黄页导言 如上所示,在[[STM32F103_HAL库寄存器学习笔记19 - CAN发送中断CAN接收中断接收所有CAN报文ringbuffer数据结构]]的基础上,为CAN发送端也引入了ringbuffer(环形缓冲区)机制。CAN发送有三个发送邮箱,为什么还另外需…

导言


在这里插入图片描述
如上所示,在[[STM32F103_HAL库+寄存器学习笔记19 - CAN发送中断+CAN接收中断+接收所有CAN报文+ringbuffer数据结构]]的基础上,为CAN发送端也引入了ringbuffer(环形缓冲区)机制。CAN发送有三个发送邮箱,为什么还另外需要ringbuffer?

  1. 三邮箱限制:STM32F103 的 CAN 控制器只有三个发送邮箱,当应用层在短时间内产生超过3条待发帧时,多余的帧无法立即写入邮箱,只能被丢弃或阻塞等待(阻塞更可靠,但可能降低响应速度)。
  2. 突发流量平滑:环形缓冲区可以暂存超出邮箱数的那些帧,在邮箱空闲时再依次发送,避免丢帧。
  3. 解耦业务与硬件:应用层只需往环形缓冲区写入数据,不用关心底层邮箱是否空闲,降低了发送接口的耦合度。

总结来说,在CAN发送链路中引入ringbuffer,能有效解决上述问题,尤其是邮箱数量限制和突发流量平滑问题。

项目地址:
github:

  • HAL库: https://github.com/q164129345/MCU_Develop/tree/main/stm32f103_hal_library20_Can_Send_Rec_With_RB
  • 寄存器方式: https://github.com/q164129345/MCU_Develop/tree/main/stm32f103_ll_library20_Can_Send_Rec_With_RB
    gitee(国内):
  • HAL库: https://gitee.com/wallace89/MCU_Develop/tree/main/stm32f103_hal_library20_Can_Send_Rec_With_RB
  • 寄存器方式: https://gitee.com/wallace89/MCU_Develop/tree/main/stm32f103_ll_library20_Can_Send_Rec_With_RB

使用for循环一口气发送50条CAN报文

为验证ringbuffer对“三邮箱限制”和“突发流量平滑”问题的缓解效果。在主循环里调用for循环,一口气发送50条CAN报文,看看效果!
在这里插入图片描述
在这里插入图片描述
如上所示:

  1. 在debug模式里,将对应的全局变量置1,就可以运行对应的测试函数。

测试一口气发送50条CAN报文,没有ringbuffer

在这里插入图片描述
如图所示,将全局变量 test 置为1,运行函数 CAN_Test_Send50Frames() 连续发送50条报文。结果显示,CAN分析仪仅接收到3条报文。原因很简单,另外47条报文因为发送邮箱挤满了,所以都溢出了。

测试一口气发送50条CAN报文,有ringbuffer

在这里插入图片描述
如上所示,将全局变量testRB置1,运行函数CAN_Test_Send50Frames_Use_Ringbuffer()一口气发送50条报文。接着,CAN分析仪接收到50条报文。实践证明,ringbuffer作为二级缓存能有效解决突发高流量问题与三个邮箱的局限性问题。

一、代码(HAL库)


1.1、myCanDrive.c

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2、stm32f1xx_it.c

在这里插入图片描述

1.3、main.c

在这里插入图片描述
在这里插入图片描述

1.4、代码编译

在这里插入图片描述

二、代码(寄存器方式)


1.1、myCanDrive_reg.c

在这里插入图片描述
如上所示,RX Ringbuffer与TX Ringbuffer都是二级缓存。
在这里插入图片描述
在这里插入图片描述
如上所示,这两个函数基本跟HAL库一样,只是开与关中断的函数改为寄存器方式直接操作。
在这里插入图片描述
如上所示,在CAN发送完成中断函数USB_HP_CAN1_TX_IRQHandler()里调用函数CAN_Get_CANMsg_From_RB_To_TXMailBox_IT(),在中断里将ringbuffer里的CAN报文放入空闲的发送邮箱。

1.2、main.c

在这里插入图片描述
在这里插入图片描述

1.3、代码编译

在这里插入图片描述

1.4、测试

在这里插入图片描述
如上所示,测试结果跟HAL库一样。

http://www.dtcms.com/wzjs/283744.html

相关文章:

  • 建立企业网站的缺点长沙网络推广哪家
  • 做b2b网站的公司百度一下官网入口
  • 广西seo网站公关策划公司
  • 淘客类网站如何做排名百度网盘网页
  • 新疆维吾尔自治区人民政府seo是广告投放吗
  • wordpress哔哩哔哩现在百度怎么优化排名
  • 网站建设经费保障市场调研报告范文
  • 郑州品牌营销网站建设福州seo推广服务
  • 会宁县建设局网站百度 seo优化作用
  • 网络怎么推广广州宣布5条优化措施
  • 成都快型网络公司排名seo优化网站查询
  • 网站建设与管理软件热搜在哪里可以看
  • 17一起来做网站宁波seo推广推荐公司
  • asp access网站开发实例精讲百度公司招聘岗位
  • 吉林市城乡建设委员会网站深圳网络推广平台
  • 网站建设成本图中牟网络推广
  • 电商详情页用什么软件做的宁波seo推广平台
  • 网站建设方案书 百度文库拓客app下载
  • 有网站源码如何搭建自己的网站凡科网免费建站官网
  • 钟表商城网站建设方案360网站收录提交
  • 网站建设中主页指的是磁力链接搜索引擎2021
  • 台州做网站联系方式app推广代理加盟
  • 网站 seo 优化建议网络整合营销
  • 公司网站站建设协议网站优化推广软件
  • 漯河城乡建设管理局网站网站快速收录技术
  • 自助建站和网站开发的利弊盘多多网盘搜索
  • 竹妃怎么在公众号里做网站今日十大热点新闻
  • 深圳外贸网站建设工作室信息流广告代理商排名
  • 怎么看一个网站用什么系统做的沪深300指数怎么买
  • 网站服务器和空间的区别上海网络推广培训学校