WZH70246

  • 2024-05-14
  • 回复了主题帖: 纯电动汽车800V平台技术解析

    高压800v平台相比400v平台有没有什么缺点呢?一般来说凡事不都是有好有坏吗?

  • 2024-04-12
  • 加入了学习《泰克MSO6B探索营:应用案例深度解析》,观看 通用串行总线USB技术演进及测试方案

  • 2024-03-11
  • 加入了学习《便携式环境及运动监测仪》,观看 便携式环境及运动监测仪

  • 回复了主题帖: 颁奖:电源小课堂 | 从12V电池及供电网络优化的角度分析电动汽车E/E架构的趋势

  • 2024-03-01
  • 发表了主题帖: ring buffer原理举例

    假设我们有一个环形缓冲区,其大小(RING_BUFFER_SIZE)为8字节。初始情况下,缓冲区是空的: 索引: 0 1 2 3 4 5 6 7 数据: [ ][ ][ ][ ][ ][ ][ ][ ] 头:    ^ 尾:    ^ 在这个例子中,头(head)和尾(tail)索引都是0,表示下一个数据应写入数组的第0位,下一个读取也应该是第0位。 当我们写入3个字节的数据(例如A,B,C)后,环形缓冲区看起来将是: 索引: 0 1 2 3 4 5 6 7 数据: ['A']['B']['C'][ ][ ][ ][ ][ ] 头:                      ^ 尾:    ^ 现在,头索引指向位置3,表示下一个字节将被写入此处。尾索引仍然指向位置0,表示下一个字节将从此处读取。 假设我们继续写入5个字节的数据(D, E, F, G, H),环形缓冲区将变为: 索引: 0 1 2 3 4 5 6 7 数据: ['A']['B']['C']['D']['E']['F']['G']['H'] 头:    ^ 尾:    ^ 此时头和尾的索引都回到了0。头索引回到了0是因为('H'后,head = (7 + 1) % 8),就等于0。如果我们现在尝试写入更多数据,RingBuffer_Write将返回false,因为缓冲区已满。 如果我们接着读取4个字节,每次读取都会让尾索引增加,然后环形缓冲区会是这样的: 索引: 0 1 2 3 4 5 6 7 数据: ['A']['B']['C']['D']['E']['F']['G']['H'] 头:    ^ 尾:                            ^ 在这个状态下,尾索引指向4,表示下一个字节将从这里读取。由于缓冲区不再是满的,我们现在可以再次写入数据。 如果我们现在写入三个字节的数据(I, J, K),环形缓冲区的状态将更新如下: 索引: 0 1 2 3 4 5 6 7 数据: ['I']['J']['K']['D']['E']['F']['G']['H'] 头:              ^ 尾:                          ^ 头索引移动到位置3,并覆盖了那里旧的数据。因为我们已经读取了那些数据,所以这是安全的。这个行为使得环形缓冲区非常适合处理连续的数据流,而不需要大量的内存分配和复制操作。   以上来之GPT4.            

  • 2024-02-18
  • 回复了主题帖: 雅特力车规级MCU-AT32A403A开发板评测 09 GC9A01 SPI-LCD 圆形屏幕LVGL移植

    这是国产的车规MCU吗

发布的帖子

最近访客

< 1/2 >

统计信息

已有27人来访过

  • 芯积分:336
  • 好友:3
  • 主题:34
  • 回复:155

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言