[AVR单片机] 串口求助!!!!!!!!!!!!!!!!!!!!!!!!

[复制链接]
2515|9
 楼主| 89C51RX 发表于 2007-11-22 01:31 | 显示全部楼层 |阅读模式
//*****************************************************************************************
晶振   3.6864M
波特率 9600
MCU    ATMEGA128L
*****************************************************************************************/
#include <avr/io.h>
#include <inttypes.h>
#include <stdint.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
uint16_t i;
/*****************************************************************************************
*****************************************************************************************/
void chushi(void)
{
    UCSR0C = 0x06;
    UBRR0L = 0X16;
    UBRR0H = 0X00;
    UCSR0A = 0x00;
    UCSR0B = (1<<TXCIE0)|(1<<TXEN0)|(1<<UDRIE0); //使能接收,使能发送
    SREG|=0X80;
}
/*****************************************************************************************
*****************************************************************************************/
SIGNAL(SIG_UART0_RECV)
{
}
SIGNAL(SIG_UART0_DATA)
{
}
SIGNAL(SIG_UART0_TRANS)
{
}
/*****************************************************************************************
*****************************************************************************************/
int main(void)
{
    chushi();
    while(1)
    {
        for(i=0;i<65530;i++);
        if(UDRE0)UDR0=0X00;
        for(i=0;i<65530;i++);
        if(UDRE0)UDR0=0Xaa;
        for(i=0;i<65530;i++);
        if(UDRE0)UDR0=0X00;
        for(i=0;i<65530;i++);
        if(UDRE0)UDR0=0X55;
    }
}

用串口收到这写数
D8 FE 00 26 E6 00 D8 FE 00 26 E6 00 D8 FE 00 26 E6 00 D8 FE 00 26 E6 00 D8 FE 00 26 E6 00 D8 FE 00 26 E6 00 D8 FE 00 26 E6 00 D8 FE 00 26 E6 00 D8 FE 00 26 E6 00 D8 FE 00 26 E6 00 D8 FE 00 26 E6 00 D8 FE 00 36 F6 00 D8 FE 00 26 E6 00 D8 FE 00 36 F6 00 D8 FE 00 26 E6 00 D8 FE 

不知道那里有问题,请大侠帮忙.谢谢!!
hotpower 发表于 2007-11-22 01:36 | 显示全部楼层

肯定是配置不对~~~自己好好检查~~~

computer00 发表于 2007-11-22 01:41 | 显示全部楼层

最好用示波器看看波特率...然后再推测哪配置错了...

testcode 发表于 2007-11-22 01:53 | 显示全部楼层

UBRR0L = 0X17;

hotpower 发表于 2007-11-22 02:12 | 显示全部楼层

哈哈~~~西方人俺该去迷糊了~~~假夜猫子~~~886

hotpower 发表于 2007-11-22 06:45 | 显示全部楼层
 楼主| 89C51RX 发表于 2007-11-22 12:27 | 显示全部楼层

以前一直用51都没有问题啊

以前一直用51串口都没有问题啊,我用的是U->串口线 
我没有示波器,看不到波形
void chushi(void)
{
    UCSR0C = 0x06;//8位数据,1位停止,校验无
    UBRR0L = 0X17;//波特率  9600  书上表格是23
    UBRR0H = 0X00;
    UCSR0A = 0x00;
    UCSR0B = (1<<TXCIE0)|(1<<TXEN0)|(1<<UDRIE0); //使能接收,使能发送
    SREG|=0X80;  //开总中断
}
还是不对,看过不少别人的程序,没找到问题,所以在这求助.
谢谢各位回复!!
hotpower 发表于 2007-11-22 13:07 | 显示全部楼层

一试变知~~~

rcengtian 发表于 2007-11-23 14:52 | 显示全部楼层

串口调试工具不会错吧?

?
hotpower 发表于 2007-11-26 03:34 | 显示全部楼层

俺就不明白串口就不和俺作对呢...郁闷之中~~~

您需要登录后才可以回帖 登录 | 注册

本版积分规则

57

主题

151

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部