关于mcbsp串口通信的问题

[复制链接]
 楼主| YEQINGCHI 发表于 2007-6-6 16:58 | 显示全部楼层 |阅读模式
哪位高手用过mcbsp串口呀,我用两片vc5416进行串口通信,可是有的时候发的数据不对,我用的字节方式传输的,中断发送,中断接受.我的mcbsp设置如下,<br />发送端初始化:<br />void&nbsp;initia_MCBSP(void)<br />&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSA0=0x00;//SPCR1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=SPSD0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=uWork&0x0000;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSD0=uWork;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSA0=0x01;//SPCR2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=SPSD0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=uWork&0x0000;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSD0=uWork;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSA0=0x00;//SPCR1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=SPSD0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=uWork|0x0080;//使能dx,并复位接收器;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSD0=uWork;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSA0=0x01;//SPCR2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=SPSD0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=uWork|0x0040;//复位发送器,采样率发生器从复位中退出<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSD0=uWork;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSA0=0x0E;//PCR0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=SPSD0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSD0=0x0000;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=0x0A00;//采样率发生器由的桢同步模式位决定发送桢同步信号,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSD0=uWork;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSA0=0x06;//SRGR1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=SPSD0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=uWork|0x00fe;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSD0=uWork;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;nop&nbsp;&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;nop&nbsp;&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSA0=0x00;//SPCR1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=SPSD0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=uWork|0x0001;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSD0=uWork;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSA0=0x01;//SPCR2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=SPSD0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=uWork|0x0001;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSD0=uWork;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;}<br />接受端初始化:<br />&nbsp;void&nbsp;initia_MCBSP(void)<br />&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSA0=0x00;//SPCR10<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=SPSD0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=uWork&0x0000;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSD0=uWork;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSA0=0x01;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=SPSD0;//SPCR20<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=uWork&0x0000;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSD0=uWork;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSA0=0x00;//SPCR10<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=SPSD0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=uWork|0x0080;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSD0=uWork;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSA0=0x01;//SPCR20<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=SPSD0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=uWork|0x0040;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSD0=uWork;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSA0=0x0E;//PCR0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//uWork=SPSD0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//SPSD0=0x0000;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=0x0A00;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSD0=uWork;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSA0=0x06;//SRGR10<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=SPSD0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=uWork|0x00FF;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSD0=uWork;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;nop&nbsp;&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;&nbsp;nop&nbsp;&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSA0=0x00;//SPCR10<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=SPSD0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=uWork|0x0001;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSD0=uWork;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSA0=0x01;//SPCR2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=SPSD0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uWork=uWork|0x0001;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPSD0=uWork;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;}<br /><br />请各位高手给分析一下,初始化是否正确.有例程也行,我这先谢谢了.我的E_mail;yeqingchi@163.com<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;07.06.06<br />
navywhj 发表于 2007-6-7 08:30 | 显示全部楼层

注释太少了

应该把每次初始化的寄存器内容作为注释放前头,谁也记不住寄存器每一位是什么意思。那样自己改起来也方便。&nbsp;<br />如果要帮你查问题,还得去看寄存器内容。呵呵
glacier365 发表于 2007-6-7 16:21 | 显示全部楼层

是啊,注释太少了

都看不太明白是什么意思。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

32

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部