注册 登录
查看: 282|回复: 6

[平衡组] 我不会VB 怎样子才能利用好串口助手来调节参数啊

[复制链接]
发表于 2015-1-20 17:48:10 | 显示全部楼层 |阅读模式
000 例程中 只能接受一个字符

回复

使用道具 举报

发表于 2015-1-20 17:49:06 | 显示全部楼层
要用中断接收,不然会丢数据的。
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2015-1-20 20:15:27 | 显示全部楼层
可以用现成的上位机,当然你有能力的话自己做也行。
回复 支持 反对

使用道具 举报

发表于 2015-1-21 06:34:54 | 显示全部楼层
山外メ雲ジ 发表于 2015-1-20 17:49
要用中断接收,不然会丢数据的。

山外哥,用上位机,下位机的程序都要放在中断里?
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2015-1-21 14:41:02 | 显示全部楼层
宇宙开拓 发表于 2015-1-21 06:34
山外哥,用上位机,下位机的程序都要放在中断里?

中断接收数据,可以在主函数里处理数据。
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-22 08:18:25 | 显示全部楼层
山外メ雲ジ 发表于 2015-1-20 17:49
要用中断接收,不然会丢数据的。

我写了 协议了 这是不是 中断函数?  串口提示
UART3_RX_TX Interrupt
****default_isr entered on vector 67*****


void UART3_RX_TX_IRQHandler(void){
  led_turn(LED1);
    uint8 ch;
  static unsigned char h1=0,h2=0;
  static unsigned short rxcnt=0;
        if(uart_query (UART3) != 0)                                 //查询是否接收到数据
        {
           uart_getchar (UART3,&ch);                              //等待接收一个数据,保存到 ch里
           printf("\n接收数据成功");
        //   uart_putchar(UART3, ch);                                //发送1个字节
       }
   //uart_getchar (UART3,&ch);   
                        h1=h2;
                        h2=ch;
                        if((h1==head)&&(h2==local_addr))        //
                        {
                                rec_status=1;
                                h1=0;
                                h2=0;
                        }

                        else if(rec_status==1)        //握手成功
                {       printf("\n握手成功");
                        rxcnt=ch;
                        rec_status=2;
                        ii=0;
                }
                else if(rec_status==2)        //接收数据
                {
                        if(rxcnt>0)
                        {
                                uart_getchar (UART3,&buff[ii]);

                                if(ii==rxcnt)
                                {
                                        recover=1;
                                       
                                        deal();
                                        rec_status=0;
                                }
                        }

                }      
                        else
                        {
                                rec_status=0;
                        }


}

void deal()
{


}


回复 支持 反对

使用道具 举报

发表于 2015-1-22 13:47:35 | 显示全部楼层
UART3_RX_TX Interrupt
****default_isr entered on vector 67*****


没有配置中断函数,导致进入了默认中断函数
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部