初學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.是這個單片機不能用長整型,還是其他什么問題?
|