wangdan269

    1. wangdan269 发表于 2017-9-14 08:54 问题已经解决了,是串口调试助手的问题,我用的是GSM串口调试助手,它无法接收13和11(我用十六进制显示 ...
      可能11 13是两个握手信号,这个串口助手程序应该没考虑到这个问题
    2. wangdan269 发表于 2017-9-13 14:18 求助大神,STM8s遇到某个字节无法发送的问题,该如何解决? 我用STM8s发送字节,在pc端用串口助手接收查看 ...
      问题已经解决了,是串口调试助手的问题,我用的是GSM串口调试助手,它无法接收13和11(我用十六进制显示的,别跟我说是因为ASCII码表示回车看不到),换了一个串口调试助手就可以了
    3. 求助大神,STM8s遇到某个字节无法发送的问题,该如何解决? 我用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个停止位 // 设置波特率,必须注意以下几点: //    (1) 必须先写BRR2 //    (2) BRR1存放的是分频系数的第11位到第4位, //    (3) BRR2存放的是分频系数的第15位到第12位,和第3位到第0位 // 对于波特率2400时,分频系数=2000000/2400=833 // 对应的十六进制数为341,0000 0011 0100 0001 , BBR1=34,BBR2=01 //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);      //发送是否完成 }复制代码

最近访客

< 1/1 >

统计信息

已有2人来访过

  • 芯积分:--
  • 好友:--
  • 主题:--
  • 回复:3

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言