找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2336|回复: 3
打印 上一主题 下一主题
收起左侧

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. }

复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:364341 发表于 2018-7-22 15:41 | 只看该作者
十六进制显示试试
回复

使用道具 举报

板凳
ID:258798 发表于 2018-7-22 16:13 | 只看该作者

改用十六进制会显示3F,刚好是问号的ASCII码
回复

使用道具 举报

地板
ID:377442 发表于 2018-7-22 17:07 | 只看该作者
十六进制显示和十六进制发送两个checkbox选上,出现√
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表