標題:
求教!我這個是什么問題?
[打印本頁]
作者:
glr
時間:
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位數(shù)據(jù),可變波特率
BRT = 0xFD;//設定獨立波特率發(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; //關串口中斷
TI = 0; //清零串口發(fā)送完成中斷請求標志
SBUF = i;
while(TI ==0); //等待發(fā)送完成
TI = 0; //清零串口發(fā)送完成中斷請求標志
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);}
}
}
用串口調試助手,收到的aaa為0. 如果aaa定義為:signed int aaa; 則正常收到32001.是這個單片機不能用長整型,還是其他什么問題?
作者:
dqzcq
時間:
2013-10-17 12:23
新新手幫頂
作者:
glr
時間:
2013-10-21 00:30
沒人知道?
唉,原以為可以用單片機做點事,沒想一接觸,就碰了壁。32767并不是一個很大的數(shù),稍不留意,就會超出,導致出錯。用c 語言看來是不行了,用匯編,實在是太麻煩?磥恚荒芑氐絇C機與DOS程序里去了。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1