c - 将 PuTTY 数据导入 MSP430

标签 c putty msp430 code-composer

我正在尝试通过 PuTTY 对两个 MSP430 进行编程,使其基本上实现即时消息,但无法弄清楚如何在没有调试器的情况下将键入的信息传输到 MSP430 上。我正在使用 CCS,它是 MSP430 F2274。我有一个程序,其中用户在一个 MSP430 上的按钮上输入莫尔斯电码,该程序通过以下方法成功输出到另一个 MSP430 上的 PuTTY。

void displayString(char array[], char size) {
    WDTCTL = WDTPW + WDTHOLD;            // Disable WDT
    DCOCTL = CALDCO_8MHZ;                // Load 8MHz constants
    BCSCTL1 = CALBC1_8MHZ;               //
    P3SEL |= 0x30;                       // P3.4,5 = USCI_A0 TXD/RXD
    UCA0CTL1 |= UCSSEL_2;                // SMCLK
    UCA0BR0 = 0x41;                      // 8MHz 9600
    UCA0BR1 = 0x03;                      // 8MHz 9600
    UCA0MCTL = UCBRS1;                   // Modulation UCBRSx = 2
    UCA0CTL1 &= ~UCSWRST;                // **Initialize USCI state

  int count;
  for(count=0; count<size; count++){
    while (!(IFG2&UCA0TXIFG));              // USCI_A0 TX buffer ready?
    UCA0TXBUF = array[count];               // TX -> RXed character
  }
}

有人可以发送具有类似设置的相反代码(将信息输入到 MSP430 上)吗?谢谢。

最佳答案

我使用 picocom:

$ picocom -r -b 9600 /dev/ttySxxxx

UART初始化代码:

void uart_setup()
{
  // Configure UART pins
  P2SEL1 |= BIT0 + BIT1;
  P2SEL0 &= ~(BIT0 + BIT1);

  // Configure UART 0
  UCA0CTL1 |= UCSWRST; // perform reset
  UCA0CTL1 = UCSSEL_1;                      // Set ACLK = 32768 as UCBRCLK
  UCA0BR0 = 3;                              // 9600 baud
  UCA0BR1 = 0; 
  UCA0MCTLW |= 0x5300;                      // 32768/9600 - INT(32768/9600)=0.41
                                            // UCBRSx value = 0x53 (See UG)
  UCA0CTL1 &= ~UCSWRST;                     // release from reset
  //UCA0IE |= UCRXIE;                         // Enable RX interrupt
}

重写 putchar():

int putchar(int c)
{
  if (c == '\n') putchar('\r');
  while (!(UCA0IFG & UCTXIFG));
  UCA0TXBUF = c;
  return 0;
}

然后您可以简单地调用 printf(...) 将文本从 MSP430 输出到串口。

关于c - 将 PuTTY 数据导入 MSP430,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24788804/

相关文章:

lamp - 删除不同目录中具有相同文件名的大量文件 - cpanel/LAMP

c - TI CC3100 getting_started_with_wlan_station 示例给出链接器错误

c - 如果我使用超过 25 个元素的数组,msp430g2211 (launchpad) 在启动时停止

找不到要在 c 中读取的 .txt 文件

c - C中获取信号发送者的PID

c - 将 unsigned int 的第 10、11、12 位覆盖为 X 的最简单方法是什么?

c - 在 C 中执行一个使用数学库的文件

linux - 复制和粘贴外来字符

使用 pysftp 通过 HTTP 代理进行 Python 连接

c - 液晶屏坏了