这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » UART UART模块问题

共2条 1/1 1 跳转至

UART UART模块问题

院士
2006-09-17 18:14:16     打赏
UART UART模块问题



关键词: 模块     问题    

院士
2006-12-22 22:43:00     打赏
2楼
问 我现在有一块板,p3.3接422-TEN,p3.4接422-TIN,p3.5接422-OUT,外接时钟是32768Hz,程序如下:

void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P3SEL |= 0x38; // P3.3,4,5 = UCLK0,USART0 TXD/RXD
//P3DIR |= 0x18;
ME1 |= UTXE0 + URXE0; // Enable USART0 TXD/RXD
UCTL0 |= CHAR; // 8-bit character
UTCTL0 |= SSEL0; // UCLK = ACLK
UBR00 = 0x0D; // 32k/2400 - 13.65
UBR10 = 0x00; // baudrate=2400
UMCTL0 = 0x6B; // Modulation
UCTL0 &= ~SWRST; // Initialize USART state machine
while(1)
{
TXBUF0='a';
}
}

422口通过转换器接232到pc.

用iar下载进去以后,没有数据输出. 用示波器测p3.4有信号输出,但测p3.3无信号输出.

这是怎么回事?

我是新手,以后还有很多问题要请教大家,谢谢了! 1: 查两点 1:P3SEL |= 0x38; // P3.3,4,5 = UCLK0,USART0 TXD/RXD是否定义正确;
2:p3.3接422-TEN,是不是使能信号线,如果是就要给使能信号; 2: 那么发送使能信号是 P3OUT |= 0x08 ? 每次发送都要使能吗? 还是只是初始化时使能 就行了? 3: 我刚调试通过,现在才知道他很简单。我用32768晶振,ti例程。就可以。

但是要注意,

现有的计算机串口线有的是一一对应的,有的是交叉过的。我白费了一天的时间就是这个原因。

其他的没什么,接通后例程就能正常工作。 4: 不过我用的是422接口,要通过转换器接到PC,可能有点不大一样,现在我的做法是这样的

void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P3SEL |= 0x30; // P3.4,5 = USART0 TXD/RXD
P3DIR |= 0x18;
P3OUT |= 0x08; // P3.3=1

ME1 |= UTXE0 + URXE0; // Enable USART0 TXD/RXD
UCTL0 |= CHAR; // 8-bit character
UTCTL0 |= SSEL0; // UCLK = ACLK
UBR00 = 0x0D; // 32k/2400 - 13.65
UBR10 = 0x00; // baudrate=2400
UMCTL0 = 0x6B; // Modulation
UCTL0 &= ~SWRST; // Initialize USART state machine

while(1)
{
P3OUT |= 0x08;
TXBUF0='a';
}
}

从串口调试助手那里可以收到数据,但收到的数据都是0x00 5: 谁能说说,为什么程序里是TXBUF0='0' , 但从串口调试助手收到的是0xF0?

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]