3296|2

3

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

MSP430F5529的USCI配置冲突问题 [复制链接]

楼主自己画的板子,是通过F5529控制前端模拟器件采集 并通过uart传数据到电脑上
与前端通信是用UCB1的SPI模式,前段时间调通了,并在示波器上看到了正确的数据流

后来写的UCA1配置UART的程序,单独程序调试时候可以将数据传输至电脑上,串口助手也可以看到正确的数据

但之后将俩段代码整合在一起时候,发现程序出错,SPI输出一直是低电平,所以串口助手看到全部是00 不知道有没有大神知道是怎么回事?
贴上代码
  1. //--------------------SPI setup------------------------------------------------
  2. P4SEL |= BIT1+BIT2+BIT3; // P4.1-3 option select 3-PIN SPI
  3. P4DIR |= BIT1; // SIMO output
  4. P4DIR &= ~BIT2; // SOMI input
  5. P4DIR |= BIT3; // CLK output

  6. P4OUT |= BIT0; //P4.0输出高电平 /CS disabled
  7. P4DIR |= BIT0; //P4.0 for CS


  8. UCB1CTL1 |= UCSWRST; // **Put state machine in reset**
  9. UCB1CTL0 |= UCSYNC+UCMST+UCMSB+UCCKPL; // SPI master
  10. UCB1CTL0 &= ~UC7BIT; // 8-bit
  11. UCB1CTL0 &= ~UCCKPH;


  12. UCB1CTL1 |= UCSSEL_2; // SMCLK=1.048M
  13. UCB1BR0 = 0; // 不分频
  14. UCB1BR1 = 0; //

  15. UCB1CTL1 &= ~UCSWRST;
  16. UCB1IE =0;

  17. //---------------------UART发送到PC机--------------------------------------
  18. P4SEL = BIT4+BIT5; // P3.4,5 = USCI_A0 TXD/RXD
  19. UCA1CTL1 |= UCSWRST; // **Put state machine in reset**
  20. UCA1CTL1 |= UCSSEL_2; // SMCLK
  21. UCA1BR0 = 6; // 1MHz 9600 (see User*s Guide)
  22. UCA1BR1 = 0; // 1MHz 9600
  23. UCA1MCTL = UCBRS_0 + UCBRF_13 + UCOS16; // Modln UCBRSx=0, UCBRFx=0,
  24. // over sampling
  25. UCA1CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
  26. UCA1IE |= UCRXIE; // Enable USCI_A0 RX interrupt

  27. //--------------------------------------------------------------------------*/
复制代码
 
点赞 关注

回复
举报

3

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
后来看是不是时钟的问题  就把时钟改了一下 UART用ACLK  并把REFO付给ACLK
结果还是不行
  1.     UCSCTL4 |= SELA__REFOCLK;      // ACLK = REFOCLK
  2.     P4SEL = BIT4+BIT5;                        // P4.4,5 = USCI_A1 TXD/RXD
  3.    
  4.     UCA1CTL1 |= UCSWRST;                      // **Put state machine in reset**

  5.     UCA1CTL1 |= UCSSEL_1;                     // CLK = ACLK
  6.     UCA1BR0 = 0x03;                           // 32kHz/9600=3.41 (see User's Guide)
  7.     UCA1BR1 = 0x00;                           //
  8.     UCA1MCTL = UCBRS_3+UCBRF_0;               // Modulation UCBRSx=3, UCBRFx=0

  9. //    UCA1CTL1 |= UCSSEL_2;                     // SMCLK
  10. //    UCA1BR0 = 6;                              // 1MHz 9600 (see User's Guide)
  11. //    UCA1BR1 = 0;                              // 1MHz 9600
  12. //    UCA1MCTL = UCBRS_0 + UCBRF_13 + UCOS16;   // Modln UCBRSx=0, UCBRFx=0,
  13.    
  14.     UCA1CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
  15. //    UCA1IE |= UCRXIE;                         // Enable USCI_A0 RX interrupt
复制代码
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
按理说 IO口也没复用
一个是UCA1 一个是UCB1 不该会冲突的啊  
楼主小白 实在是没办法了  
跪求大神们帮忙  北京地区可请吃饭~~~
 
 
 

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

随便看看
查找数据手册?

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-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表