找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2399|回复: 3
打印 上一主题 下一主题
收起左侧

关于串口调试的问题,help

[复制链接]
跳转到指定楼层
楼主
ID:52855 发表于 2013-8-9 16:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include"c8051f350.h"
#define  sysclk     24500000        //系统时钟频率,单位:HZ;
#define  baud       9600            //串口通信波特率,单位:bps

void Uart0_Init(void);
void Sysclk_Init(void);
void SysPort_Init(void);
void Uart0_SendChar(unsigned char chr);



void main(void)
{
        unsigned char a;
       
        PCA0MD&=~0x40;        // 禁止看门狗定时器

        Sysclk_Init();        // 配置系统时钟
        SysPort_Init();       // 端口配置
        Uart0_Init();         // 串口初始化


        while(1)
        {

                a=9;
                Uart0_SendChar(a);

        }
}

void Uart0_Init(void)
{
   SCON0 = 0x10;                                                //允许接收
   if (sysclk/baud/2/256 < 12)
   {
      TH1 = -(sysclk/baud/2/12);
      CKCON &= ~0x0B;                  // T1M = 0; SCA1:0 = 00
   }
   else
   {
      TH1 = -(sysclk/baud/2/48);
      CKCON &= ~0x0B;                  // T1M = 0; SCA1:0 = 10
      CKCON |=  0x02;
   }
   TL1 = TH1;                                                  
   TMOD &= ~0xf0;                                           // 定时器设置
   TMOD |=  0x20;                                          
   TR1 = 1;                                                           // 启动定时器,串口开始工作
   TI0 = 0;                                                           // 清除中断标志
   RI0 = 0;
   ES0 = 0;
}
void Sysclk_Init(void)
{

    OSCICN    = 0x83;

}
void SysPort_Init(void)
{
    P0MDOUT   = 0x1D;
        P0MDIN    = 0xFF;
    P0        = ~P0MDOUT;
       
        P1MDOUT   = 0x38;
        P1MDIN    = 0x3F;
    P1        = ~P1MDOUT;

    P0SKIP    = 0x00;
    P1SKIP    = 0x00;
    XBR0      = 0x03;
    XBR1      = 0xC0;

        IE        = 0x80;
}
void Uart0_SendChar(unsigned char chr)
{       
        TI0 = 0;
        SBUF0 = chr;
        while(!TI0);            // 等待发送1个字节数据完成
        TI0 = 0;                                  // 清除中断标志

}
这是一段很简单的串口通信程序,但是我用串口调试助手确收不到任何数据。如果将a=9改为a=‘9’,串口调试助手可以正常显示。为什么,那么如何传输数字而不是字符呢

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:52909 发表于 2013-8-10 17:40 | 只看该作者
试试十六进制
回复

使用道具 举报

板凳
ID:52855 发表于 2013-8-12 10:34 | 只看该作者

十六进制也不行
回复

使用道具 举报

地板
ID:76287 发表于 2015-4-10 09:10 | 只看该作者
虽然不懂,但还是要顶,毕竟每一位老手都是从新手蜕变而来的,赞一个。。。。。。
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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