C 将数据放入MSP430
我试图通过PuTTY将两个MSP430编程为基本上即时消息,但不知道如何在没有调试器的情况下将键入的信息输入MSP430。我用的是CCS,它是MSP430 F2274。我有一个程序,用户在一个MSP430上的按钮上输入摩尔斯电码,通过以下方法成功输出到另一个MSP430上C 将数据放入MSP430,c,putty,msp430,code-composer,C,Putty,Msp430,Code Composer,我试图通过PuTTY将两个MSP430编程为基本上即时消息,但不知道如何在没有调试器的情况下将键入的信息输入MSP430。我用的是CCS,它是MSP430 F2274。我有一个程序,用户在一个MSP430上的按钮上输入摩尔斯电码,通过以下方法成功输出到另一个MSP430上 void displayString(char array[], char size) { WDTCTL = WDTPW + WDTHOLD; // Disable WDT DCOCTL
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
}
}
void显示字符串(字符数组[],字符大小){
WDTCTL=WDTPW+WDTHOLD;//禁用WDT
DCOCTL=CALDCO_8MHZ;//加载8MHZ常量
BCSCTL1=CALBC1_8MHZ//
P3SEL |=0x30;//P3.4,5=USCI|U A0 TXD/RXD
UCA0CTL1 |=UCSSEL_2;//SMCLK
UCA0BR0=0x41;//8MHz 9600
UCA0BR1=0x03;//8MHz 9600
UCA0MCTL=UCBRS1;//调制UCBRSx=2
UCA0CTL1&=~UCSWRST;//**初始化USCI状态
整数计数;
对于(计数=0;计数RX字符)
}
}
有人能用类似的设置发送反向代码(在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():
然后,您可以简单地调用printf(…)将文本从MSP430输出到串行端口。如果您仍然想离开
putchar()
和prtinf()
进行调试-打印到调试器的调试窗口中,那么您可以使用单独的读取
功能:
unsigned char ReadByteUCA_UART(void)
{
//while ((IFG2&UCA0RXIFG)==0); // wait for RX buffer (full)
while(UCA0STAT&UCBUSY);
return (UCA0RXBUF);
}
Putty是串行终端(除其他外)电脑程序,不是吗?你是不是误用它来指通用串行端口接口,或者你真的想在设置中的某个地方使用该程序?我可能误用了这个术语。到目前为止,我一直用PuTTY来查看莫尔斯电文。如果需要其他东西来将数据输入MSP430,那没关系。
unsigned char ReadByteUCA_UART(void)
{
//while ((IFG2&UCA0RXIFG)==0); // wait for RX buffer (full)
while(UCA0STAT&UCBUSY);
return (UCA0RXBUF);
}