找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求教!我这个是什么问题?

[复制链接]
跳转到指定楼层
楼主
ID:56026 发表于 2013-10-17 12:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
初学stc12c5a单片机,编程如下:


#include<stc12c5a.h>
#include <stdio.h>
#include <stdlib.h>


signed long int aaa;
                                                

void Init_Uart()
{
// 115200波特率
PCON &= 0x7f;//波特率不倍速
SCON = 0x50;//8位数据,可变波特率
BRT = 0xFD;//设定独立波特率发生器重装值 11.0592M晶振
AUXR |= 0x04;//独立波特率发生器时钟为Fosc,即1T
AUXR |= 0x01;//串口1选择独立波特率发生器为波特率发生器
AUXR |= 0x10;//启动独立波特率发生器
ES = 1; //充许串口1中断
}                                                         


char putchar (unsigned char i)
{
    ES     =   0;  //关串口中断
    TI     =   0;  //清零串口发送完成中断请求标志
    SBUF   =   i;
    while(TI ==0); //等待发送完成
    TI     =   0;  //清零串口发送完成中断请求标志
    ES     =   1;  //允许串口中断
    return SBUF;
}


void abc()
{

aaa=32001;
}



        




//主函数,C语言的入口函数:        
void main(void)  
{
        Init_Uart();
          while(1)
        {
             abc();
           if(RI)
                {
                RI=0;                        
        if (SBUF=='l'){printf("%d", aaa);}
                  }
}




用串口调试助手,收到的aaa为0. 如果aaa定义为:signed  int aaa;  则正常收到32001.是这个单片机不能用长整型,还是其他什么问题?

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

使用道具 举报

沙发
ID:55964 发表于 2013-10-17 12:23 | 只看该作者
新新手帮顶
回复

使用道具 举报

板凳
ID:56026 发表于 2013-10-21 00:30 | 只看该作者
没人知道?
唉,原以为可以用单片机做点事,没想一接触,就碰了壁。32767并不是一个很大的数,稍不留意,就会超出,导致出错。用c 语言看来是不行了,用汇编,实在是太麻烦。看来,只能回到PC机与DOS程序里去了。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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