搜索
bottom↓
回复: 6

C8051F320串口通信问题

[复制链接]

出0入0汤圆

发表于 2010-8-7 09:47:20 | 显示全部楼层 |阅读模式
程序想实现的功能是从串口调试工具输入 1,单片机发送字符串 I get 1,但是一直都不对,麻烦各位大大帮我看看吧~


/////////////////////////////////////
//  Generated IniTIalization File  //
/////////////////////////////////////

#include "C8051F320.h"
#define    uchar    unsigned    char
#define    uint    unsigned    int
uchar    a,i,flag;
uchar    code    table[]="I get ";
// Peripheral specific initialization functions,
// Called from the Init_Device() function
void Reset_Sources_Init()
{
    int i = 0;
    VDM0CN    = 0x80;
    for (i = 0; i < 350; i++);  // Wait 100us for initialization
    RSTSRC    = 0x02;
}

void PCA_Init()
{
    PCA0MD    &= ~0x40;
    PCA0MD    = 0x00;
}

void Timer_Init()
{
    TCON      = 0x40;
    TMOD      = 0x20;
    CKCON     = 0x08;
    TH1       = 0xB2;
}

void UART_Init()
{
    SCON0     = 0x10;
}

void Port_IO_Init()
{
    // P0.0  -  Unassigned,  Open-Drain, Digital
    // P0.1  -  Unassigned,  Open-Drain, Digital
    // P0.2  -  Unassigned,  Open-Drain, Digital
    // P0.3  -  Unassigned,  Open-Drain, Digital
    // P0.4  -  TX0 (UART0), Open-Drain, Digital
    // P0.5  -  RX0 (UART0), Open-Drain, Digital
    // P0.6  -  Unassigned,  Open-Drain, Digital
    // P0.7  -  Unassigned,  Open-Drain, Digital

    // P1.0  -  Unassigned,  Open-Drain, Digital
    // P1.1  -  Unassigned,  Open-Drain, Digital
    // P1.2  -  Unassigned,  Open-Drain, Digital
    // P1.3  -  Unassigned,  Open-Drain, Digital
    // P1.4  -  Unassigned,  Open-Drain, Digital
    // P1.5  -  Unassigned,  Open-Drain, Digital
    // P1.6  -  Unassigned,  Open-Drain, Digital
    // P1.7  -  Unassigned,  Open-Drain, Digital
    // P2.0  -  Unassigned,  Open-Drain, Digital
    // P2.1  -  Unassigned,  Open-Drain, Digital
    // P2.2  -  Unassigned,  Open-Drain, Digital
    // P2.3  -  Unassigned,  Open-Drain, Digital

    XBR0      = 0x01;
    XBR1      = 0x40;
}

void Oscillator_Init()
{
    OSCICN    = 0x83;
}

void Interrupts_Init()
{
    IE        = 0x98;
}

// Initialization function for device,
// Call Init_Device() from your main program
void Init_Device(void)
{
    Reset_Sources_Init();
    PCA_Init();
    Timer_Init();
    UART_Init();
    Port_IO_Init();
    Oscillator_Init();
    Interrupts_Init();
}
void    main()
{
    Init_Device();
    EA=1;
    ES0=1;
    while(1)
    {
        if(flag==1)
        {
            ES0=0;
            for(i=0;i<6;i++)
            {
                SBUF0=table;
                while(!TI0);
                TI0=0;
            }
            SBUF0=a;
            while(!TI0)
            TI0=0;
            ES0=1;
            flag=0;
        }
    }
}
void    serial()    interrupt    4
{
    RI0=0;
    a=SBUF0;
    flag=1;
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2011-8-19 15:47:25 | 显示全部楼层
最近刚要做 串口通信

出0入0汤圆

发表于 2011-8-26 11:37:47 | 显示全部楼层
kanbudong

出0入0汤圆

发表于 2012-4-6 19:11:39 | 显示全部楼层
for(i=0;i<6;i++)
            {
                SBUF0=table;
                while(!TI0);
                TI0=0;
            }
这儿有问题吧,你好像都不懂指针。

出0入0汤圆

发表于 2012-4-8 20:52:09 | 显示全部楼层


也在用c8051f022的这个串口程序,用示波器能看到txd波形,但是电脑上换了几个串口接受软件都没有数据接收的显示???

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-4-8 21:06:17 | 显示全部楼层
P0.4配置模式不对吧,应该配置成D P啊
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-17 22:27

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表