平时都用的8N1的模式,这次使用了校验位,因此串口的初始化工作需要改变

#ifdef RT_USING_UART2
USART_InitStructure.USART_BaudRate = 9600;
USART_InitStructure.USART_WordLength = USART_WordLength_9b;
USART_InitStructure.USART_StopBits = USART_StopBits_2;
USART_InitStructure.USART_Parity = USART_Parity_Even;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_ClockInitStructure.USART_Clock = USART_Clock_Disable;
USART_ClockInitStructure.USART_CPOL = USART_CPOL_Low;
USART_ClockInitStructure.USART_CPHA = USART_CPHA_2Edge;
USART_ClockInitStructure.USART_LastBit = USART_LastBit_Disable;
USART_Init(USART2, &USART_InitStructure);
USART_ClockInit(USART2, &USART_ClockInitStructure);

/* register uart2 */
rt_hw_serial_register(&uart2_device, "uart2",
RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX | RT_DEVICE_FLAG_STREAM,
&uart2);

/* Enable USART2 DMA Rx request */
USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);
#endif

这里最重要的是

  1. USART_WordLength_9b

这个字段意思是字的长度,没有校验位的时候是8位,有了之后要加一位。因此,这不代表数据的长度……真坑

还要多些网友的帮助,详见

http://www.rt-thread.org/phpBB3/viewtopic.php?f=2&t=2960&p=16419#p16419

最新文章

  1. JS在window和document的应用
  2. Windows Server 2012 克隆修改SID
  3. JAVA监听器原理
  4. codevs 1378选课 树形DP
  5. 【POJ2778】AC自动机+矩阵乘法
  6. python与编码方式
  7. chrome浏览的下载扩展程序
  8. logstash 处理tomcat catalina.out
  9. 金蝶K3无法创建数据库,请查看该文件夹的错误的解决方法。
  10. elike.python.function()
  11. 201521123072《java程序设计》第九周总结
  12. 【分布式】ZooKeeper学习之一:安装及命令行使用
  13. [python] 带有参数并且传递参数的装饰器
  14. mysql root password
  15. C语言一个程序的存储空间
  16. 解决ssh连接问题1
  17. python 基本数据类型常用方法总结
  18. [UE4]C++方法多个返回值给蓝图
  19. 如何使用App.config文件,读取字符串?
  20. Java项目(5)——单例模式的应用与研究

热门文章

  1. unbuntu下vnc和vnc2swf的使用
  2. c++继承中的内存布局
  3. Hibernate笔记——缓存机制详细分析
  4. struts使用html:file上传文件的时候文件名乱码解决
  5. Lua的协程(coroutine)
  6. C# 值类型和引用类型的区别
  7. Hadoop2.2.0 安装笔记
  8. springmvc 中常用的注解配置使用说明
  9. 截取linux文件存储路径方法
  10. R语言数据类型转换