STM8s的串口无法输出0x11和0x13两个数

我用STM8s发送字节,在pc端用串口助手接收查看,比如发送UART_SendChar(0x18);UART_SendChar(0x17);UART_SendChar(0... 我用STM8s发送字节,在pc端用串口助手接收查看,比如发送
UART_SendChar(0x18);
UART_SendChar(0x17);
UART_SendChar(0x16);
UART_SendChar(0x15);
UART_SendChar(0x14);
UART_SendChar(0x13);
UART_SendChar(0x12);
UART_SendChar(0x11);
UART_SendChar(0x10);
但是串口助手只能接收到7个字节,18、17、16、16、14、12、10。而13 和11无法接收到,STM8s没有把这两个字节传输出来。串口初始化的代码如下
void Uart_Init(void)
{
UART1_CR1 = 0x00; // b5 = 0,允许UART, b2 = 0,禁止校验
UART1_CR2 = 0x00; // 禁止串口发送、接收
UART1_CR3 = 0x00; // b5,b4 = 00,1个停止位

//9600波特率下 分频系数208,BBR1=D0,BBR2=00
UART1_BRR2 = 0x00;
UART1_BRR1 = 0x0D;
UART1_CR2 = 0x2C; // b3 = 1,允许发送, b2 = 1,允许接收,b5 = 1,允许产生接收中断
}

void UART_SendChar(unsigned char ch)
{
while((UART1_SR & 0x80) == 0x00); // 若发送寄存器不空,则等待
UART1_CR2= 0x00; //发送使能禁止
UART1_DR = ch; // 将要发送的字符送到数据寄存器
UART1_CR2= 0x08; //发送使能禁开启
while((UART1_SR & 0x40) == 0x00); //发送是否完成
}
串口只是不能输出这两个数,与输出字节的顺序、位置、数量无关
问题已经解决了,是串口调试助手的问题,它接收不到13和11,换了一个软件就可以接收了。
谢谢大家!
展开
 我来答
White_MouseYBZ
2017-09-13 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6698万
展开全部
0x11和0x13肯定都被接收了,只是你没有看见而已。因为0x11是“垂直制表符”,0x13是“回车”,它们都是“动作字符”,是的接收设备上产生一个动作而不输出字符!
匿名用户
2017-09-13
展开全部
接收端是如何的,是不是按13判断数据的
~
~
~
追问
接收端是pc上的串口助手,没有判断,只是用来接收16进制数据而已。除了0x13和0x11,其他的字节都能接收到。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式