打印
[ZLG-ARM]

lpc2148串口0通信的问题

[复制链接]
2002|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangmengl|  楼主 | 2007-11-30 17:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#define    UART_BPS    115200
void UART0_Init (void)
{
    uint16 Fdiv;
    
    U0LCR = 0x83;                        
    Fdiv  = (Fpclk / 16) / UART_BPS;    
    U0DLM = Fdiv / 256;
    U0DLL = Fdiv % 256;
    U0LCR = 0x03;
}
int main (void)
{
    uint8 const snd[64];
    uint8 const a[]="My name is Meili Wang";
    PINSEL0 = 0x00000005;                    
    UART0_Init();                        
    while(1)  {
         sprintf(snd,"%*.s",sizeof(a),a);
         UART0_SendStr(snd);  
         DelayNS(10); 
            } 
        return 0;
}
这个程序是周工的例程里的,我只改了main()中的,用原例也是这样的情况:
接收时是乱码,而且断断续续,要很久才能看到数据显示,(收发都是115200)

请问一下是什么原因???谢谢!!

相关帖子

沙发
gumanzhou| | 2007-11-30 18:49 | 只看该作者

re

 sprintf(snd,"%*.s",sizeof(a),a);
是错的~~~~~

使用特权

评论回复
板凳
gumanzhou| | 2007-11-30 19:04 | 只看该作者

实验代码是没有问题的

你可以不要你那一句试一下就知道了

sprintf(snd,"%*.s",sizeof(a),a);

我好没有见过这种表达的

第二个的格式写的不对~~~~
改正就对了


使用特权

评论回复
地板
wangmengl|  楼主 | 2007-11-30 20:24 | 只看该作者

还是一样!!!是乱码,而且断断续续,很久才收到一次数

使用特权

评论回复
5
gumanzhou| | 2007-12-1 08:36 | 只看该作者

怎么可能啊??

我都做了实验是正确的,用你的方法是不行的

你的表达是错的^^^^^

使用特权

评论回复
6
LittleKen| | 2007-12-1 10:20 | 只看该作者

注意周公代码对中断的处理

两年前看过周公开发板的代码,如果串口使用中断模式,需要自己完善中断处理程序,因为周公的代码里面是只对8个字节的中断进行了响应,如果你接受的字符不是8的整倍数,余数部分就要等到下次接收到够8个的时候才能得到。

使用特权

评论回复
7
wangmengl|  楼主 | 2007-12-1 16:15 | 只看该作者

谢谢各位大侠!!!

我的问题已经解决,是p0.14口的原因,一直处于低电平

使用特权

评论回复
8
gumanzhou| | 2007-12-1 20:29 | 只看该作者

sprintf(snd,"%*.s",sizeof(a),a);

 sprintf(snd,"%*.s",sizeof(a),a);
这个语句我编译都通不过(ADS)

还有如果是P0.14是低电平的话

程序根本不可能运行……………………
还能发来乱码??
奇怪!!!!

使用特权

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

本版积分规则

23

主题

65

帖子

0

粉丝