用怎么用sendbyte发送呢不能用sendchar
追答这种情况直接对SBUF操作,哪个型号的51?
追问STC IAP15w4k58s4
追答void Uart1INT(void) interrupt 8 //ARM
{
unsigned char tempData;
if((S2CON & 0x01) == 0x01)//接收
{
S2CON = S2CON & 0xFE;
tempData = S2BUF;
Uart1Rxd(tempData);
}
}
if((S2CON & 0x02) == 0x02)//发送
{
S2CON = S2CON & 0xFD;
if(uart1SendNum < uart1SendLength)
{
S2BUF = uart1SendBuf[uart1SendNum];
uart1SendNum ++;
}
else
{
uart1SendNum = 0;
uart1SendLength = 0;
}
}
}
串口1的收发程序,供参考
sendbyte3("V:");if(dy[0]!=0x30)
{S3BUF=dy[0];}
else
{S3BUF=(' ');}
S3BUF=(dy[1]);
S3BUF=('.');
S3BUF=(dy[2]);
S3BUF=('\r');
S3BUF=('\n');
以上51单片机
AT+CIPSEND=0,7
busy s...
V:
只收到v: wifi串口只支持字符串不能用16进制
你这样不行啊,你给S3BUF赋值,他就开始发送了,而你连续赋值,这么操作是不允许的。
这么改,
S3BUF = XX;
while(((S3CON & 0x02) == 0x00));//判断是否发送完成
S3CON = S4CON & 0xFD; //清除发送标志
printf能不能指定串口发送
追答没用过这个。你的串口配置程序?
追问程序在软件上能过在硬件上过不了
追答你看看你的UART3的中断是不是打开了,发送时没有中断入口,造成程序飞了。
本回答被网友采纳