主题中讨论的其他器件: MSP-TS430PZ5X100、 MSP-FET
我正在使用 MSP-TS430PZ5X100中插入的 MSP430F5438A。 并在 CCSv7上使用 MSP-FET 进行 JTAG 调试。
我没有将任何外部振荡器焊接到电路板上、因此使用了内部振荡器。
我正在使用从 MSP430通过 UART 重新路由 printf 示例复制的以下代码:
该代码来自 http://processors.wiki.ti.com/index.php/Printf_support_for_MSP430_CCSTUDIO_compiler
我正在尝试使用 FTDI USB 转 UART 电缆通过 UART 向桌面转接器发送"J"。 我已连接接地、RX 和 TX 引脚。
但是、对于发送的每个"J"字符、我都会收到两个垃圾字符0x2D 0x00。
另外、当尝试使用 printf ("Hello world")时、我收到0xAB 0x3A 0x3A 0x0A 0xFA 0x8B 0xDA 0xDA 0x3A 0xBA 0x02 0x00。
我正在使用示波器来点击 UART 信号。
在导致问题的代码或硬件设置中可能出现的问题是什么。
#include "msp430x54xA.h"。
#include
#include
#define UART_printf
#ifdef UART_printf
int fputc (int _c、寄存器文件*_FP);
int fputs (const char *_ptr、寄存器文件*_FP);
#endif
void main (void)
{
unsigned int counter=0;
WDTCTL = WDTPW + WDTHOLD; //停止 WDT
//初始化时钟模块
P1DIR |= 0x01; // P1.0输出
UCSCTL3 |= SELREF_REFOCLK;
UCSCTL4 |= SELA_REFOCLK;
//初始化 Timer_A 模块
TA1CCTL0 = CCIE; // CCR0中断使能
TA1CCR0 = 32768;
TA1CTL = tassel_ACLK + MC_UP + TACLR;// ACLK、UP 模式、清除 TAR
#ifdef UART_printf
//初始化 USCI 模块
P5SEL |= BIT6 + BIT7; // P5.6、7 = USCI_A1 TXD/RXD
UCA1CTL1 |= UCSWRST; //**将状态机复位**
UCA1CTL1 |= UCSSEL_ACLK; // AMCLK
UCA1BR0 = 27; // 32、768kHz 1200 (请参阅用户指南)
UCA1BR1 = 0; // 32、768kHz 1200
UCA1MCTL = UCBRS_2; // 32、768kHz 1200
UCA1CTL1 &=~UCSWRST; //**初始化 USCI 状态机**#endif
while (1)
{
_bis_SR_register (LPM3_bits+GIE); //进入 LPM3、启用中断
printf ("J");
}
}//
计时器 A0中断服务例程
#pragma vector=Timer1_A0_vector
__interrupt void Timer1_A0_ISR (void)
{
P1OUT ^= 0x01; //切换 P1.0
__BIC_SR_REGISTER_ON_EXIT (LPM3_BITS);
}
#ifdef UART_printf
int fputc (int _c,寄存器文件*)
{
while (!
!UCA1IFG&UCTXIFG);UCA1TXBUF =(unsigned char)_c;* return = t <len ; (ptr) t t = t t t t char (t);t = t t t t (t) t = t t t t t (t);t = t t t t t t t = t (t = t、t = t、t = t、t = t、t = t、t = t、t i++)
{
while (!(UCA1IFG&UCTXIFG));
UCA1TXBUF =(无符号字符)_ptr[i];
}
返回 len;
}
#endif
