这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » ARM 串口的这个问题搞不定是不是ARM本身问题。还是下面程序的问题

共2条 1/1 1 跳转至

ARM 串口的这个问题搞不定是不是ARM本身问题。还是下面程序的问题

院士
2006-09-17 18:14:16     打赏
ARM 串口的这个问题搞不定是不是ARM本身问题。还是下面程序的问题



关键词: 串口     这个     问题     不定     是不是     本身     还是     下面         

院士
2006-12-22 22:43:00     打赏
2楼
问 void    InitUart1(UINT32 BPS){
    //PCONP |= (0x01 << 3) ;
    //PINSEL1 &= ~((UINT32)0x0F);
    PINSEL0 |= ((UINT32)0x50000);
    //设定波特率
    U1LCR =0x80;
    U1DLL=Fpclk/(16*BPS)&0x000000ff;
    U1DLM=(Fpclk/(16*BPS)) >>8;
    //在此加入自己的初始化代码
    U1LCR =0x07;
    U1FCR =0xC1;
   
    U1FCR = 0xc1;                      // 使能FIFO,并设置触发点
    U1IER = 0x01;
}

void   __irq IRQ_UART1(void){  
u char uarti;
while((U1LSR&0x01)!=0){
    dmxc[uarti][uartj]=U1RBR;
    if((U1LSR&0x10)!=0)//有间隔  将uarti增加//?可是有时候间隔检测不到
        uarti++;
    }    
dmx[554]=U1IIR;    //读出来而已
VICVectAddr = 0x00;                  // 中断处理结束
}  

发现间隔有时候间阁检测不到。。。。是我程序问题?? 1: 我也碰到这个问题,怎么解决阿??我也碰到这个问题,怎么解决阿?? 2: U1LSR读2遍?程序问题 3: U1LSR相同状态没有同时读2遍U1LSR是在不断被读可是一个状态没有读2遍因为我有dmxc[uarti][uartj]=U1RBR;这段他读了U1RBR所以每次都读的是新数据的U1LSR状态
4: 问题很奇怪的我遇到的问题不是说什么时候都检测不到另个CPU发出的间隔信号;
而是有时候他检测不到,就象不稳定一样。。

如果是完全不能辨认出间隔信号倒好说是我程序问题。。可是
他辨认是有和对方发的数据长度有关。。某个长度就辨认不出间隔。。
有的长度就完全没问题。

另个CPU发几个数据就用个间隔信号表示命令发完了。。我就可用
dmxc[uarti][uartj];数组保存对方命令。。

如果我在进串口中断后设置个断点停一下再运行本来在缓冲检测不到
的断点也能正常检测。。很怪。。不知道是什么问题。。 5: 问题虽然看起来小实际不容易

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]