发一个自适应波特率的程序,看有没有人感兴趣

2020-02-02 09:20发布

搜了下好像坛子里还没人玩这个,个人觉得很有用,特别是产品比较开放的时候可以自动调节波特率,而且也不用愁晶振更换的问题了(例如12M、14M、10M都无所谓..)

点击此处下载 ourdev_630154BNSSDG.doc(文件大小:118K) (原文件名:单片机从机的波特率自适应设置.doc)

原理是测起始位宽度(第一位),并以此为标准设置波特率,呵呵,不是很难哈



(原文件名:串口 TTL电平规范,发送01 s所以低位在前.JPG)


(原文件名:串口 TTL电平规范,发送55.JPG)

注:此办法需要主机发送一个标准信号,例如01H,

我在想一个更好办法,就是多次捕获脉宽,然后取最小值(1B),然后平均~,应该也能实现~~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
65条回答
Ian11122840
2020-02-05 15:44
又想了想,可以把ary[tmplen]转换到ary2[tmplen]

让它为第一个数组里的数从小到大排列~~~然后~~~就可以慢慢享用我的1B了~~

加了个排序函数,然后打印
                   n=tmplen;
           for(i=0;i<n-1;i++)
                   {        p=i;
                     for(j=i+1;j<n;j++)
                      if(ary[p]>ary[j])
                       p=j;
                      if(p!=i)
                       {temp=ary[p];ary[p]=ary;ary=temp;}
                   }   

                 for(i=0;i<tmplen;i++){
                 printf("%d,",ary);
                 }

嘿嘿,1B乖乖的给我放在这里了~~

(原文件名:未命名.JPG)

一周热门 更多>