搜索
bottom↓
回复: 4

想试一下LAUNCHPAD的4线制SPI,为什么就不行呢?大侠们看一看

[复制链接]

出0入0汤圆

发表于 2012-11-25 22:10:48 | 显示全部楼层 |阅读模式
#include "msp430g2553.h"

unsigned char MST_Data, SLV_Data;

void main(void)
{
  volatile unsigned int i;

  WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog timer
  P1OUT = 0x00;                             // P1 setup for LED & reset output
  P1DIR |= BIT0;                     //
  P1SEL = BIT1 + BIT2 + BIT4 + BIT5;
  P1SEL2 = BIT1 + BIT2 + BIT4 + BIT5;
  UCA0CTL0 |= UCCKPL + UCMSB + UCMST + UCSYNC + UCMODE_2;  // 4-pin, 8-bit SPI master
  UCA0CTL1 |= UCSSEL_2;                     // SMCLK
  UCA0BR0 |= 0x02;                          // /2
  UCA0BR1 = 0;                              //
  UCA0MCTL = 0;                             // No modulation
  UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
  IE2 |= UCA0RXIE;                          // Enable USCI0 RX interrupt
  
  __delay_cycles(75);                 // Wait for slave to initialize

  MST_Data = 0x01;                          // Initialize data values
  SLV_Data = 0x01;

  UCA0TXBUF = MST_Data;                     // Transmit first character

  __bis_SR_register(LPM0_bits + GIE);       // CPU off, enable interrupts
}

// Test for valid RX and TX character
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCIA0RX_ISR(void)
{
  volatile unsigned int i;

  while (!(IFG2 & UCA0TXIFG));              // USCI_A0 TX buffer ready?

  if (UCA0RXBUF == SLV_Data)                // Test for correct character RX'd
    P1OUT |= BIT0;                          // If correct, light LED
  else
    P1OUT &= ~BIT0;                         // If incorrect, clear LED

  MST_Data++;                               // Increment master value
  SLV_Data++;                               // Increment expected slave value
  UCA0TXBUF = MST_Data;                     // Send next value

  __delay_cycles(50);                     // Add time between transmissions to
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2012-11-25 22:24:56 | 显示全部楼层
补充一下,小弟我在做430和A7102无线通信模块的数据传输,A7102是4线制的,我刚看了下网上,说4线制是在430做从机的时候才可以,没理解。请具体说一下,谢谢

出0入0汤圆

发表于 2012-11-30 09:52:37 | 显示全部楼层
nSEL还是要自己控的

出0入0汤圆

发表于 2012-11-30 10:13:10 | 显示全部楼层
trouble 发表于 2012-11-25 22:24
补充一下,小弟我在做430和A7102无线通信模块的数据传输,A7102是4线制的,我刚看了下网上,说4线制是在430 ...

很多网上的技术贴真假难辨,所以自己得学会分辨。一切都以官方的手册为准。所以多看手册。430的SPI需要配好工作模式,也就是nSel、时钟和数据的前后沿位置,而且nSel一般都独立控制。另外我记得A7102是3线的SPI,SDI/SDO用的是同一根脚,不能用4线制。另外一点多余信息供你参考,几年前我做某产品之前,曾评估过多种RF方案性能,包括A7102,发现其品质一般,尤其当通信速率提高时,误码率也大幅提高。结果该RF方案被pass掉,呵。

出0入0汤圆

发表于 2012-11-30 10:16:34 | 显示全部楼层
430的SEL是在做主机的时候,可以被从机强制从主机模式变为从机模式;所以在做主机的时候,并不会做从设备的自动选择。如果你要选择从设备,还需要程序处理的。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-28 08:29

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表