切换到宽版
  • 1545阅读
  • 17回复

316bmw.com:单片机串口模拟(单片机程序,收费,行情 [复制链接]

连赢娱乐手机下载直营网 下一主题
离线apple1999

发帖
140
M币
64
专家
1
粉丝
6
只看该作者 10楼 发表于: 11-09
还是觉得意义不大,工程量巨大。

参考这个
http://www.522.eb663.com/u011329967/article/details/80174167

在线梦幻数码

发帖
643
M币
44
专家
5
粉丝
32
只看该作者 11楼 发表于: 11-09
现在很多单片机已经有用不止1个串口了。
换不了现有主控单片机,你也可以再加一个有N串口的单片机,搞个1拖N。
个人不建议用软件模拟串口。劳神可能还不稳定可靠。
1
离线sadate

发帖
229
M币
2006
专家
2
粉丝
34
只看该作者 12楼 发表于: 11-09
沁恒ch438串口扩展芯片,能扩展出8个全速串口,某宝价格16到18元左右;如果对速率要求不高,可以选se1720,将一路115200速率的串口扩成7路4800速率的串口,形成一拖七的效果,某宝价格6.8元左右

内容来自Android手机客户端

离线mckk520

发帖
179
M币
1592
专家
9
粉丝
22
只看该作者 13楼 发表于: 11-09
串口小程序,
直接放在定时器里, 比如定时器是104US的,就是9600BPS,
,
校检码 无,停止位1位,

,
串口波形  ==========   1111   0  XXXXXXXX 1
                        一个低电平后 开始1-8位的数据传入 再一个高电平 结束,    ,,每个数据位的时间   =    1/串口波特率 ;

     --------------根据时序,判断, 低电平来了后 ,连续读入8位数据,暂时保存,
                        再第9位时,归0重新接收  ,  同时 判断(停止位)是'1'还是'0',
                                   为'1'则表示数据接收正确传输前面保存的8位数据,
                                  为'0'时,表示数据接收错误,放弃

===============       本程序好处,  只用了一个定时器,+普通GPIO,并且定时器还可以正常计时,无占用,
====================  设置要放的定时器时间,就可以对应改变串口波特率,
============  本程序在电脑串口助手9600 连续发送多个长数据 ,循环10多分钟,,对应收到的数据无一错误,,暂时定论:成功,


  1. void UART_33(void)    // GPIO模拟串口接收 8N1  === 放在定时器 里面
  2.   {
  3.          static  unsigned char   RxDataValue_Temp, RxDataNum=0;
  4.        static  unsigned  char      RxDataValue;
  5.        static   unsigned  char    K_FLAG =0;
  6.   if( K_FLAG )  //判断头帧打开接收
  7.     {
  8.     
  9.     
  10.           if( RXD_IO ==1 )    RxDataValue |= ( 0x01 << (RxDataNum) );  //高电平对应的位置“1”      
  11.           RxDataNum++;                    //接收到的位计数
  12.                   // ,保存接收到的8个位数据            
  13.     if   (   RxDataNum==8  )       RxDataValue_Temp =  RxDataValue ;
  14.         
  15.     
  16.      else  if ( RxDataNum>=9  )  //,接收第9个位=数据停止位
  17.          {
  18.               RxDataNum=0;
  19.               K_FLAG=0;
  20.             
  21.                if(   RXD_IO  ==1 )   //判断 数据停止位 为 “1” =接收正确,下面执行相关程序
  22.             {
  23.               UART1_SendChar(   RxDataValue_Temp  );
  24.                         
  25.                         if ( RxDataValue_Temp == 0x42 )  BIBI=1;
  26.                         else BIBI=0;
  27.                         
  28.                         
  29.             }
  30.       //   else  BIBI=0;
  31.         RxDataValue =0;
  32.           RxDataValue_Temp=0;        
  33.             
  34.          }
  35.             
  36.     }
  37.     
  38.     
  39.     else
  40.     {
  41.           if(  RXD_IO  ==0 )   K_FLAG=1;
  42.     }
  43.   }




[ 此帖被mckk520在2018-11-09 18:38重新编辑 ]
离线jcdzxh

发帖
1393
M币
8497
专家
9
粉丝
50
只看该作者 14楼 发表于: 11-09
下降沿+定时器,一相采样,开销小,波特高
离线elecfunwb

发帖
1130
M币
3690
专家
8
粉丝
12
只看该作者 15楼 发表于: 11-10
人家说搬砖是自我调侃,你以为随便一个人就能各个平台移植代码?知识是日积月累的,学习不要成本?你以为跟U盘似的随便复制?
离线小茅

发帖
2259
M币
1579
专家
6
粉丝
34
只看该作者 16楼 发表于: 11-10
你要是觉得贵可以找别人啊,如果你的需求只有个别人会做,属于卖方市场,当然会被随意开价。我觉得如果尽量详细的描述需求的具体内容有助于找到更多的解决方案,有时候真的只是看不懂你要的东西到底是什么而想不出该怎么帮你
数码之家终于回归正常的论坛模式了
离线胡奚曷

发帖
4560
M币
8626
专家
31
粉丝
155
只看该作者 17楼 发表于: 11-10
模拟的话,只能用捕获加定时器的方式来,但是速率也不会太高

如果可以的话建议主从模式,所有串口都并到一起

工欲善其事,必先利其器
澳门星际赌场娱乐7799手机app e帝一娱乐登陆 百万发游戏手机app 山东福彩网首页手机app 五洲彩票如何开户手机app
sb319.com bmw799.com bmw727.com 872sb.com 927tyc.com
137tyc.com suncity92.com 35suncity.com 46tyc.com 753msc.com
澳门新濠天地娱乐登入 532tyc.com 盈丰娱乐登入网址 msc276.com 20xpj.com