一个关于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);
}
RE:一个关于STM32F103VC 串口的问题
有2种可能,1、串口接收波特率不对,或者配置不正确
2、串口发送程序不对,没看到你发送串口的程序,所以估计这里有问题
你先排除一下,你多发几个字节,看看每个数据是不是都有问题。
RE:一个关于STM32F103VC 串口的问题
你的发送程序弄出来看看先回复:一个关于STM32F103VC 串口的问题
不知道楼主解决了没有啊,我也出现类似的问题了,请赐教啊!
页:
[1]