标题:
求教!我这个是什么问题?
[打印本页]
作者:
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位数据,可变波特率
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.是这个单片机不能用长整型,还是其他什么问题?
作者:
dqzcq
时间:
2013-10-17 12:23
新新手帮顶
作者:
glr
时间:
2013-10-21 00:30
没人知道?
唉,原以为可以用单片机做点事,没想一接触,就碰了壁。32767并不是一个很大的数,稍不留意,就会超出,导致出错。用c 语言看来是不行了,用汇编,实在是太麻烦。看来,只能回到PC机与DOS程序里去了。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1