mbed 串口通信------带校验位的通信,奇偶校验(stm32F103RBT6)
来源:互联网 发布:最近网络流行词汇 编辑:程序博客网 时间:2024/05/17 09:45
第一次写技术积累博客,有不对的地方大家多多指出,多多交流。
关于mbed就不多讲了,这人比较推崇这个平台,毕竟是ARM公司主推。虽然像意法这样的公司,并不喜欢mbed(国内其实很多人用st,mbed的出现很可能挖走原来用stm32的人)。mbed在国内不温不火,能查到的大家写出来的技术积累真的很有限。在调串口问题的时候遇到了很多疑惑。没有前人去踩雷,我只能光着脚去踩了,为后人乘凉吧。下面直入正题吧。
串口通信,基础问题不多说了,不懂得百度吧。在一个小项目中,需要用到奇偶校验。看了一下mbed提供Serial类,该类的提供的功能还没很丰富的。
官方网站上有sdk的讲解
下面说说常用的几个public 方法
Serial(PinName tx, PinName rx, const char *name=NULL)
Create a Serial port, connected to the specified transmit and receive pins.
void baud(int baudrate)
Set the baud rate of the serial port.
void format(int bits=8, Parity parity=SerialBase::None, int stop_bits=1)
Set the transmission format used by the serial port.(我用的是自己做的开发板 基于stm32F103RBT6 使用了两个uart ,一个spi 一个iic )
Serial构造函数需要在初始化的时候给串口指定一个pin脚,这个例如Serial pc(PA_9,PA_10);这个大家根据自己的开发板实际情况写,我用到的是PA9,和PA10
pc.baud(19200) 这个比较好好理解,baud的参数类型 int型,设置波特率
pc.format(8,SerialBase::Odd,1) 设置数据位,校验位,停止位。我原本的意思是想做一个带偶校验的串口通信 一位起始位,数据位8,一位校验位,一位停止位,11位。
上位机串口助手软件如上图所示设置,感觉很容易,对不对。然后串口助手收到的是一堆乱码,什么情况????
哪里错了????我一度怀疑人生。网上也有讲解mbed 串口,麻蛋都是抄官网简单翻译一下,没人调程序吗?????
多试了几次,结果我手贱,有一次点错了,如下图:
有没有注意到,数据位7bits。咦?明明是8bits,怎么7bits对了?不乱码了?我恍然大悟,第一个参数指的是bits 位数是包含校验位的。而我们的pc软件设置的时候通常说的数据位就是有效的信息为,不含校验位。坑爹~~~~。
修改一下代码 pc.format(9,SerialBase::Odd,1) 串口助手设置: 数据位8 、停止位1、 校验位 odd、流控None。
联系方式qq:307640242
- mbed 串口通信------带校验位的通信,奇偶校验(stm32F103RBT6)
- 串口通信中数据的奇偶校验位算法
- 串口通信中数据的奇偶校验位算法
- stm32串口通信(初学者对于串口通信的理解)
- stm32串口通信(初学者对于串口通信的理解)
- 51单片机串行通信奇偶校验的设置方法
- 串口通信的基本概念
- 串口通信的基本知识
- 串口通信的基本概念
- 串口通信的基本概念
- 串口通信的基本概念
- 串口通信的基本概念
- 简单的串口通信
- 串口通信的基本概念
- 串口通信的基本概念
- 串口通信的基本概念
- 串口通信的基本概念
- 串口通信的基本概念
- PowerDesigner 使用记录
- Android反编译、查看源码、二次打包、签名步骤说明
- 敏捷学习:产品待办列表 2016-7-13
- Android项目目录结构介绍
- Failure to transfer org.apache.maven.plugins:maven-surefire-plugin:pom:2.12.4
- mbed 串口通信------带校验位的通信,奇偶校验(stm32F103RBT6)
- C#中 form窗体的宽度和高度最大值限制
- 欧拉路和欧拉回路
- 大小不固定的图片、多行文字的水平垂直居中
- 关于推荐系统中的特征工程
- 【poj1101】The Game BFS
- 关于网页分析一些技巧
- C语言-预编译
- Android项目目录结构res和assests目录的不同: