找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2741|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

求教!我這個是什么問題?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:56026 發(fā)表于 2013-10-17 12:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
初學(xué)stc12c5a單片機,編程如下:


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


signed long int aaa;
                                                

void Init_Uart()
{
// 115200波特率
PCON &= 0x7f;//波特率不倍速
SCON = 0x50;//8位數(shù)據(jù),可變波特率
BRT = 0xFD;//設(shè)定獨立波特率發(fā)生器重裝值 11.0592M晶振
AUXR |= 0x04;//獨立波特率發(fā)生器時鐘為Fosc,即1T
AUXR |= 0x01;//串口1選擇獨立波特率發(fā)生器為波特率發(fā)生器
AUXR |= 0x10;//啟動獨立波特率發(fā)生器
ES = 1; //充許串口1中斷
}                                                         


char putchar (unsigned char i)
{
    ES     =   0;  //關(guān)串口中斷
    TI     =   0;  //清零串口發(fā)送完成中斷請求標(biāo)志
    SBUF   =   i;
    while(TI ==0); //等待發(fā)送完成
    TI     =   0;  //清零串口發(fā)送完成中斷請求標(biāo)志
    ES     =   1;  //允許串口中斷
    return SBUF;
}


void abc()
{

aaa=32001;
}



        




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




用串口調(diào)試助手,收到的aaa為0. 如果aaa定義為:signed  int aaa;  則正常收到32001.是這個單片機不能用長整型,還是其他什么問題?

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:55964 發(fā)表于 2013-10-17 12:23 | 只看該作者
新新手幫頂
回復(fù)

使用道具 舉報

板凳
ID:56026 發(fā)表于 2013-10-21 00:30 | 只看該作者
沒人知道?
唉,原以為可以用單片機做點事,沒想一接觸,就碰了壁。32767并不是一個很大的數(shù),稍不留意,就會超出,導(dǎo)致出錯。用c 語言看來是不行了,用匯編,實在是太麻煩?磥,只能回到PC機與DOS程序里去了。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表