在线时间0 小时
UID140283
ST金币0
蝴蝶豆0
注册时间2009-7-13
新手上路
- 最后登录
- 1970-1-1
|
a0a.1 0b0c
第一次使用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);
}
|
|