标题: stm32串口数据发送问题 [打印本页]

作者: 追梦@_@    时间: 2018-7-22 10:33
标题: stm32串口数据发送问题
再利用串口向上位机发送数据时,会自己加一个问号,怎么解决?求助


下面是程序
  1. void USART1_Init(void)
  2. {
  3.                 USART_InitTypeDef USART_InitStructure;        
  4.                 GPIO_InitTypeDef GPIO_InitStructure;
  5.         
  6.                 USART_InitStructure.USART_BaudRate = 115200;
  7.                 USART_InitStructure.USART_WordLength = USART_WordLength_8b;  
  8.                 USART_InitStructure.USART_StopBits = USART_StopBits_1;  
  9.                 USART_InitStructure.USART_Parity = USART_Parity_No;
  10.                 USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  11.                 USART_InitStructure.USART_Mode =  USART_Mode_Tx;
  12.                
  13.                
  14.                 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
  15.                 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);
  16.                
  17.                 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  18.                 GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_9;
  19.                 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  20.                 GPIO_Init(GPIOA, &GPIO_InitStructure);
  21.                
  22.                 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  23.                 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
  24.                 GPIO_Init(GPIOA, &GPIO_InitStructure);
  25.                
  26.                 USART_Init(USART1,&USART_InitStructure);
  27.                 USART_Cmd(USART1, ENABLE);
  28.                
  29.                 USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);
  30. }
  31. void USART_SendString(USART_TypeDef* USARTx,char *string)
  32. {
  33.         uint8_t i=0;
  34.         while(string[i]!='\0')
  35.         {
  36.                 USART_SendData(USARTx,string[i]);
  37.                 while(USART_GetFlagStatus(USARTx, USART_FLAG_TXE) == RESET){}
  38.                 i++;
  39.         }
  40. }



  41. int main(void)
  42. {
  43.      char a[4]={'a',' ','b',' '}
  44.      USART1_Init();
  45.      while(1)
  46.         {
  47.           delay_ms(300);        
  48.           USART_SendString(USART1,a);
  49.         }
  50. }

复制代码



作者: hy1611192142    时间: 2018-7-22 15:41
十六进制显示试试
作者: 追梦@_@    时间: 2018-7-22 16:13
hy1611192142 发表于 2018-7-22 15:41
十六进制显示试试

改用十六进制会显示3F,刚好是问号的ASCII码
作者: Jimnice    时间: 2018-7-22 17:07
十六进制显示和十六进制发送两个checkbox选上,出现√




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1