3312|3

12

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

SPI同步通讯建立不起来,要命啊,跪求高手指点! [复制链接]

  1. 串口同步通讯的声明:
// 初始化MSP430的SPI
// SPI时钟选择DCOCLK最高频率,在8M-10M之间;因外部XT2=8M晶振,故选用外部晶振
void Init_SPI(void)
{
//  BCSCTL1_ |= RSEL0 + RSEL1 + RSEL2;     // 选择最高标称频率
//  DCOCTL_  |= DCO0 + DCO1 + DCO2; // Set max DCO frequency
//  BCSCTL2_ &= ~SELS;                 // SMCLK选择DCOCLK时钟源

  U0CTL = CHAR + SYNC + MM + SWRST;     // 8-bit, SPI, Master,Software reset enable
  U0TCTL = SSEL0 + SSEL1 + STC;          // 在USCLK时钟的下降沿输出,上升沿锁存
  U0BR0  = 0x002;                        // SPICLK = SMCLK/2
  U0BR1  = 0x000;
  U0MCTL = 0x000;                        // 同步通信时不需要调整寄存器,使用时最好全写0
  ME1 = USPIE0;                          // SPI模块0允许
  U0CTL &= ~SWRST;                      // SPI允许
  
  // IE1 |= URXIE0;                      // 接收中断允许
  // _EINT();                            // 允许中断
}

已经查了好多遍,我认为声明是没有错误的。。

然后用串口通讯发送一个字节:
    U0TXBUF =WriteData; // Send the byte 
    while(!(U0TCTL & TXEPT));   // TX Buffer is empty ?
这个地方U0TCTL的TXEPT位 跟踪发现,总是0,也就是说 总是有数据,在没有U0TXBUF = WriteData时候也是0

个人感觉,U0TCTL的TXEPT位 应该在未发送数据前为1(空),然后U0TXBUF有值时 该位变为0,发送完毕,该位变为1;
求高手指点啊,我的理解有问题么,然后没问题的话 我这会是什么问题呢?
复制代码




最新回复

//调整下顺序试试? while(!(U0TCTL & TXEPT)); // TX Buffer is empty ? U0TXBUF =WriteData;// Send the byte  或者 U0TXBUF =WriteData;// Send the byte  while(!(U0TCTL & TXEPT)); // TX Buffer is empty ?  U0TCTL &=~ TXEPT;//加上这个试试? 或者 把上面这个再调整顺序试试? [ 本帖最后由 SuperStar515 于 2011-8-9 12:58 编辑 ]  详情 回复 发表于 2011-8-9 12:53
 
点赞 关注

回复
举报

449

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

//调整下顺序试试?

while(!(U0TCTL & TXEPT)); // TX Buffer is empty ?

U0TXBUF =WriteData;// Send the byte

 或者

U0TXBUF =WriteData;// Send the byte

 while(!(U0TCTL & TXEPT)); // TX Buffer is empty ?

 U0TCTL &=~ TXEPT;//加上这个试试?

或者

把上面这个再调整顺序试试?

[ 本帖最后由 SuperStar515 于 2011-8-9 12:58 编辑 ]
 
个人签名世界是个圈,人生也是个圈。
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
好谢谢,我去试试
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

4
 
调整顺序后,依旧是
while(!(U0TCTL & TXEPT));
这里死循环。
这时候没有发送数据啊,怎么还是走不出来?按理说 U0TCTL的TXEPT不应该是1(空闲)么?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表