STC12C5A60S2单片机串口1无法连续发送字符的问题

在使用STC12C5A60S2单片机的串口1发送数据时,发现接收端只能接收到'00',原因是空字符导致字符串提前结束。通过修改UART_Send_Str函数,移除空字符,实现了连续发送字符的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发环境( 蓝色粗体字为特别注意内容)

1,开发板:STC12C5A60S2,串口1。

在使用STC12C5A60S2串口1发送数据的时候,接收端无法收到完整的字符串,我的发送方式如下:

                        UART_Send_Str("00");
			UART_Send_Byte(':');
			UART_Put_Num(dat[0]);
			UART_Send_Byte('.');
	   	        UART_Put_Num(dat[1]);
			UART_Send_Byte(':');
	  	        UART_Put_Num(dat[2]);
			UART_Send_Byte('.');
	  	        UART_Put_Num(dat[3]);
			UART_Send_Byte(':');
	  	        UART_Put_Num(status_move);
			UART_Send_Byte(':');
		        UART_Put_Num(status_fire);
void UART_Send_Str(uchar *s)
{
	uint len = sizeof(s) / sizeof(s[0]);
	uint i;
	for(i = 0; i < len; i++)
		//UART_Send_Byte(s[i]);
	{
		if(s[i] == '\n')
		{
			UART_Send_Enter();
		}
		else
		{
			UART_Send_Byte(s[i]);
		}
	}
}

发现接收端只能收到'00',串口无法完整接收字符,甚是诡异,把串口助手的十六进制显示勾上之后,终于发现了猫腻

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值