首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]模拟串口通信接收出错

[求助]模拟串口通信接收出错

for (;;)
 {  
   if (IS_PORT_L(PTD,D1))  //PTD1 是软件模拟的Rx
   { 
     zSciIn=0;
    sei;
    Delay3us(33); // 104us
     for (zSciTmp=0 ; zSciTmp<8 ; zSciTmp++) 
      { 
     if (IS_PORT_H(PTD,D1))
     {
      zSciIn+=128;
     }
     else
     {
      nop;
      nop;
      nop;
      nop;
     }
     Delay3us(33); // 104us org 30=154us
     zSciIn>>=1;
      }
    cli;
   }         
  DelayMs(10);
   OutSciChr(zSciIn);


输出的字符总变   不知道是什么原因?输出应该没什么问题。请高手帮忙看一下。

努力做到最好
还是要用示波器看一下波形及频率是否正确。
海纳百川  有容乃大
main
{
for (;;)
{ if (IS_PORT_L(PTD,D1))
{
zSciIn=0;
sei;
Delay3us(15); // 104us
for (zSciTmp=0 ; zSciTmp<8 ; zSciTmp++)
{
Delay3us(33); // 104us org 30=154us
zSciIn>>=1;
if (IS_PORT_H(PTD,D1))
{
zSciIn+=128;
}
else
{
nop;
nop;
nop;
nop;
}

}
cli;
}
DelayMs(10);
LCD_ChrOut(zSciIn);
OutSciChr(zSciIn);
}
频率应该没问题,因为我发送字符串的 好用,接收的的字符好像不是完整的,偶尔也会显示正确,但总是在几个乱码之间变化.
努力做到最好
我现在也在做模拟串口,我的发送数据用示波器观察不到。请问频率是根据什么设置的呢?我不知道问题出在哪?根据什么设定传输频率了,我用的GZ60,根据它的串口设置波特率马? 还是什么?
good luck
返回列表