ntzhangqj 发表于 2011-6-10 14:40:02

STM32F103 的串口 数据不对

用STM32F103R8的USART1 发射数据 每次都市 bit5,bit6 ,bit7 不对
例如 发 0x55 收的是 0xob5 发 0x40 收的是 0x80 发现 从 bit4 向前的位都正确 发0x1f 就能收 0x1f
晶振是用外部的8M x 9 = 72MHz AHB2 没有预分屏
是不是STM32 的CPU   非要用 11.0592的晶振才能准啊
 

xialibaren0008 发表于 2011-6-10 17:00:52

RE:STM32F103 的串口 数据不对

肯定没这是,串口还是不错的,8m osc

发表于 2011-6-10 21:12:51

RE:STM32F103 的串口 数据不对

晶振是8M,11M的是51用的。另外,可能是你串口的波特率配置和实际接收的波特率是不一样的。

scale_ljs 发表于 2011-6-13 08:52:26

RE:STM32F103 的串口 数据不对

应该是你的配置问题!

ntzhangqj 发表于 2011-6-13 10:26:48

RE:STM32F103 的串口 数据不对

USART_InitTypeDef USART_InitStructure;
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_Tx; //设置为接受发送模式
USART_InitStructure.USART_Clock = USART_Clock_Disable; //禁止 USART 输出 Clock
USART_InitStructure.USART_CPOL = USART_CPOL_Low;
USART_InitStructure.USART_CPHA = USART_CPHA_2Edge;
USART_InitStructure.USART_LastBit = USART_LastBit_Disable;
USART_Init(USART1, &USART_InitStructure);

/*enable receive interrupt */
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
/* Enable USART1 */
USART_Cmd(USART1, ENABLE);

要不是库有问题

发表于 2011-8-12 14:54:04

RE:STM32F103 的串口 数据不对

你的串口IO口的配置程序怎么没有啊?你可以参考官方的串口配置例程。
先配置IO口,再配置串口。
页: [1]
查看完整版本: STM32F103 的串口 数据不对