STC12c5s32s2的串口调试程序,大侠帮忙,急急
#include "stc12c5a.h"#include "intrins.h"
#include "string.h"
#include "absacc.h"
#define uint unsigned int
#define uchar unsigned char
#define nop _nop_()
#define RELOAD_COUNT 0xdc
char bdata bittest;
sbit TIbit=bittest^1;
sbit RIbit=bittest^0;
/*--------------延时函数delay-----------*/
void delay(uint ss)
{
while(ss!=0)
ss--;
}
/*--------------发送一个字节-----------*/
void uart2_send_byte(uchar c)
{ bittest=S2CON;
S2BUF=c;//串口2缓存
while(TIbit!=1);//等待发送完成,为1即为停止位发送,硬件自动置位,发送完毕
TIbit=0; //软件复位
}
/*--------------发送字符串-----------*/
void uart2_send_string(uchar *str)
{
while(*str!='\0')
{
uart2_send_byte(*str++);
}
}
/*--------------读字节-----------*/
void uart2_read_byte(void)
{
uchar k;
bittest=S2CON;
if(RIbit!=0) //接收中断标志位,接收停止位的中间时刻由硬件置位
{
k=S2BUF;
nop;
RIbit=0;
S2BUF=k;
while(TIbit!=1);
TIbit=0;
}
}
/*--------------短信发送设置-----------*/
void message_send(void)
{
uart2_send_string("AT"); //选择短信格式为文本形式
uart2_send_byte(0x0D); //AT指令的结尾
delay(10000);
uart2_send_string("AT+CMGF=1"); //选择短信格式为文本形式
uart2_send_byte(0x0D); //AT指令的结尾
delay(10000);
uart2_send_string("AT+CSCA=+8613800773500");
uart2_send_byte(0x0D); //AT指令的结尾
delay(10000);
uart2_send_string("AT+CMGS=+8613428255882");
uart2_send_byte(0x0D); //AT指令的结尾
delay(10000);
uart2_send_string("oh yeh!"); //短信内容
uart2_send_byte(0x1A); // 确认发送短信
uart2_send_byte(0x0D);
}
/*--------------mc55初始化-----------*/
void mc55_init(void)
{
uart2_send_string("AT+CMGF=1\n\r");
delay(10000);
uart2_send_string("AT+CNMI=0,1,1,1\n\r");
delay(10000);
}
/*--------------mcu初始化-----------*/
void mcu_init()
{
S2CON=0x50;//串口2,方式1
BRT=RELOAD_COUNT; //9600波特率 BRT=256-(11.0592M/32/9600/12^n)
AUXR=0x14; //0001 0100 允许独立波特率,1T模式即独立波特率发生器每一时钟记数一次,n=0
IE2=0x01; //开总中断,串口中断
EA=1;
}
/**********************主函数******************/
main()
{ //delay(50000);
mcu_init();
mc55_init();
//open_mc55();
message_send();
while(1);
}
串口调试助手接受不到,大侠看看
小弟不是很懂 怎么没人看啊?
给点意见啊 没有看到你的波特率是怎样产生的啊!!! 先用keil软件仿真看有 数据出来没有 然后排查下电路 波特率 软件程序是否有问题
页:
[1]