我自己买来MSP430F6736做了一块板子,想向PC发送一段字符串在串口助手里面显示出来,可是毫无反应。请大家帮我看看我的程序哪里有问题,谢谢了~
#include
#include
unsigned char buffer[]={"I'm MSP430!\n"};
void delay(unsigned int n)
{
unsigned int i,j;
for(i=0;i
for(j=0;j<1000;j++);
}
void main(void)
{
unsigned int i;
WDTCTL = WDTPW+WDTHOLD; // 关闭看门狗
// 将P1.2 P1.3设置为串口功能
P1SEL |= BIT2 | BIT3;
P1DIR |= BIT2 | BIT3;
// 设置异步通信
UCA0CTL0=0x11; // 将UCSWRST位设置为1
UCA0CTL0=0x91; // 选择时钟CLK = SMCLK,系统时钟1048576Hz
UCA0BR0=9; // 设置波特率为115200
UCA0BR1=0;
UCA0MCTL=0x01; // 设置调整参数
UCA0CTLW0 &= ~UCSWRST; // 复位UCSWRST
UCA0IE |= UCTXIE;
while(1)
{
while (!(UCA0IFG & UCTXIFG)); // USCI_A0 TX buffer ready?
for(i=0;i
{
UCA0TXBUF=buffer[i];
delay(30);
}
}
}
while (!(UCA0IFG & UCTXIFG));
没看出啥问题,顶多是发送的逻辑有点费资源。
对于具体的这颗IC不是太熟悉,建议你跟踪调试一下,看看主循环能否正常跑起来。
在主循环内部和外部初始化阶段各打一个断点,看程序会不会自动复位。或者是主循环被卡在哪个分支语句里了?(因为你在主循环里用到了2个循环语句,如果条件一直无法达成,程序会被阻塞住无法继续向下执行)
然后再将示波器接在IO口,检查一下是否有信号输出,TX和RX线是否接反,是否波特率不正确导致串口助手无法接收数据等
如果IO口无波形,再检查串口初始化语句是否正确
故障排查就是按照这个流程来的,自己耐心查吧,别人帮不了你的。
引用: qiushenghua 发表于 2015-5-5 23:33
没看出啥问题,顶多是发送的逻辑有点费资源。
对于具体的这颗IC不是太熟悉,建议你跟踪调试一下,看看主循环能否正常跑起来。
在主循环内部和外部初始化阶段各打一个断点,看程序会不会自动复位。或者是主循环被卡在哪个分支语句里了?(因为你在主循环里用到了2个循环语句,如果条件一直无法达成,程序会被阻塞住无法继续向下执行)
然后再将示波器接在IO口,检查一下是否有信号输出,TX和RX线是否接反,是否波特率不正确导致串口助手无法接收数据等
如果IO口无波形,再检查串口初始化语句是否正确
故障排查就是按照这个流程来的,自己耐心查吧,别人帮不了你的。
谢谢您给的建议 ,我先根据您给的建议检查一遍,有不懂的再请教您。