打印
[51单片机]

ringbuffer 和c51dajia

[复制链接]
378|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chuandaoxy|  楼主 | 2021-2-17 14:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 chuandaoxy 于 2021-2-17 14:34 编辑

最近从网上移植一段代码,串口中断很正常,可就是每次只能收到一个字符,代码如下
push_ringbuffer就是把一个字符串放进buffer,可是debug感觉就接收了一个字符

if(__save_pointer != __action_pointer) {  
    __ring_buffer[__save_pointer]=comdt;
    __save_pointer++;

感觉上面这段没起作用,没有递增接收数据
S0_ISR()interrupt INTERRUPT_UART0

{
   if (RI0)
      {RI0=0;
       push_ringbuffer(SBUF0); }
}

void push_ringbuffer(uchar comdt)

{
  if (__modbusSwitch) {

    if (__modbusBlankCheck > 10) {  //<-- 捞 箭磊甫 炼沥窍搁 埃拜炼沥 啊瓷 (5mS 付促 1究 刘啊窍绰 墨款磐)
        comFlush();                 // 50mS 浆菌促 甸绢柯 版快, 扁粮滚欺俊 乐带芭绰 葛滴 瘤款促. (畴捞令 单捞磐老 啊瓷己 乐澜)
        }
    __modbusBlankCheck = 0;

    }

  if(__save_pointer != __action_pointer) {  
    __ring_buffer[__save_pointer]=comdt;
    __save_pointer++;

  if(__save_pointer>__ring_buffer_max)
  
    {  __save_pointer=0; }
      
      
  }  
  if (__modbusSwitch) modbusFrameSearch(); //荐脚流饶 秦寸 盲澄捞 葛靛滚胶 劝己拳 登绢乐栏搁 贸府秦霖促.
}
大家看看哪里的问题,

使用特权

评论回复

相关帖子

沙发
ayb_ice| | 2021-2-18 08:38 | 只看该作者
应该是其它地方取出数据了

使用特权

评论回复
板凳
ayb_ice| | 2021-2-18 08:39 | 只看该作者
应该是其它地方取出数据了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

843

主题

1029

帖子

4

粉丝