我要做一个串口传输,然后用pc机接受。用cp210转成USB口。程序用的是TI的实例稍加修改。我用闭环测试的uart1的tx和rx都可以,但是到了计算机上用串口助手接受就不行。。不知道什么问题,程序如下:
#include <msp430x16x.h>
char temp;
int count;
void main(void)
{
volatile unsigned int i;
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P3SEL |= 0xC0; // P3.6,7 = USART1 option select
BCSCTL1 &= ~XT2OFF; // XT2on
temp='c';
do
{
IFG1 &= ~OFIFG; // Clear OSCFault flag
for (i = 0xFF; i > 0; i--); // Time for flag to set
}
while ((IFG1 & OFIFG)); // OSCFault flag still set?
BCSCTL2 |= SELM_2 + SELS; // MCLK= SMCLK= XT2 (safe)
count=0;
ME2 |= UTXE1 + URXE1; // Ena××e USART1 TXD/RXD
UCTL1 |= CHAR; // 8-bit character
UTCTL1 |= SSEL1; // UCLK = SMCLK
UBR01 = 0x45; // 8Mhz/115200 - 69.44
UBR11 = 0x00; //
UMCTL1 = 0x2C; // modulation
UCTL1 &= ~SWRST; // Initialize USART state machine
IE2 |= UTXIE1; // Ena××e USART1 TX interrupt
TXBUF1=temp;
_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt
}
#pragma vector=UART1TX_VECTOR
__interrupt void usart1_tx (void)
{
// USART1 TX buffer ready?
TXBUF1 = temp;
// RXBUF1 to TXBUF1
我用闭环测试的uart1的tx和rx都可以,但是到了计算机上用串口助手接受就不行。。是闭哪头??是usb转串口输出闭合还是单片机串口输出闭合?
CP210X 下载STC的片子都不好使,实在不行换个别的usb转串口线看看。。
回ls,我是直接在写control口的时候加了个LISTEN,datasheet上说是内部把tx和rx闭起来。。
先用单个串口试试!如果可以就说明程序没有问题,就是你的USB-UART芯片mcp210的问题。
对,发送和接收分开来做。也可以用示波器看看有没有波形产生。
甚至有的串口助手软件本身也有问题
你把CP2102 的串口输出 TXD 和 RXD 短接在一起,用串口调试助手发送数据,要是能接收到相同数据的话就是程序的毛病,接不到就是硬件的毛病。