gdgn_526345-140 发表于 2011-5-24 11:30:46

一个关于STM32F103VC 串口的问题

第一次使用STM32F103VC的芯片,串口1 出现一个这样的问题:
在发送一个字节接的数据的时候,字节最高位总是被强制为1,
串口模块 采用8N1方式,波特率为9600 。后来把波特率改为19200 情况也是一样。
比如:发送0x01  PC串口收到的是0x81   发送0x55 PC串口收到的是0xd5.
已经在困境弄了一天了 ,希望有朋友可以帮一下!不胜感激!
以下是初始化代码  编译环境是IAR5.03
各位兄弟,在使用STM32串口的时候有没有发现过这样的问题?

发送字节 PC收到的最高位 全部被置1了,如发送0x01  PC串口收到的是0x81  
                                       发送0x55  PC串口收到的是0xd5
以下是我的串口1初始化设置:

void InitCom1(void)
{
      GPIO_InitTypeDef GPIO_InitStructure;
      USART_InitTypeDef USART_InitStructure;   
      //配置串口1  TX
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; 
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
      GPIO_Init(GPIOA, &GPIO_InitStructure); 
      
     / /配置串口1  RX
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
      GPIO_Init(GPIOA, &GPIO_InitStructure); 
     //配置工作方式  8N1 方式  9600
     USART_InitStructure.USART_BaudRate = 9600;
     USART_InitStructure.USART_WordLength = USART_WordLength_8b;
     USART_InitStructure.USART_StopBits = USART_StopBits_1;
     USART_InitStructure.USART_Parity = USART_Parity_No;
     USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
     USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
     USART_Init(USART1, &USART_InitStructure);

     USART_Cmd(USART1, ENABLE); 
      
}
 
 

发表于 2011-5-24 15:05:22

RE:一个关于STM32F103VC 串口的问题

有2种可能,
1、串口接收波特率不对,或者配置不正确
2、串口发送程序不对,没看到你发送串口的程序,所以估计这里有问题
你先排除一下,你多发几个字节,看看每个数据是不是都有问题。

瘦猪呆兔 发表于 2011-5-24 15:53:40

RE:一个关于STM32F103VC 串口的问题

你的发送程序弄出来看看先

piaopiao123 发表于 2011-12-26 10:04:28

回复:一个关于STM32F103VC 串口的问题

不知道楼主解决了没有啊,我也出现类似的问题了,请赐教啊!
页: [1]
查看完整版本: 一个关于STM32F103VC 串口的问题