串口通信系列一
来源:互联网 发布:淘宝上卖假货怎么处理 编辑:程序博客网 时间:2024/06/06 20:18
对于单片机的学习,我们习惯上可以分为两大块,首先第一个是控制类的学习,包括LED小灯、数码管、电机和蜂鸣器等;第二个则是通信类学习,主要是学习串口通信以及串口通信延伸出来的各种知识。
然而,很多的同学辛辛苦苦结束了控制类的学习后,发现自己能够做一些小东西出来自娱自乐了,也就放松了学习;又或者是学到串口了,感觉很难,暂时放下了学习,这一放下,可能就很难再拿起来了。所以给大家的建议是,要持续系统的学习一门技术,建立起对这门技术或学科的概念模型,建立起来后才可以稍稍放慢下进度,等待后期的技术深化和提高。
这个系列的文章主要是围绕串口通信展开。我先将要点列一下,方便朋友们阅读:
1)串口通信难吗?
2)串口通信的基本知识
3)IO口模拟UART串口通信
4) UART串口通信的基本应用
先做一个开题声明,小编是学习宋雪松老师出品的金沙滩的单片机。所以内容会与宋老师的讲解是共通的,只是在内容上加入了个人的理解。
1)串口通信难吗?
串口通讯,其实不难。为什么这么说,因为串口通信也是一门技术,跟其他技术一样,在没接触、没弄懂的时候,隔着一层窗户纸,觉得很神秘,但是,只要你敢于去接触它,花点心思去理解,也就不难了。
觉得难的原因可能有几种情况:1、学久了,累了 2、师兄师姐们说不好学3、表面感觉高大上,不敢接触,或是接触后不长时间就抽身离开
归结起来就是:不去理解串口通信,理解不了串口通信。因为串口通信不同与控制类的学习,没有了直观性,你得到的往往只是一个结果,错了,很难去直观地理解出错的原因。
2)串口通信的基本知识
a)概念
通信按照基本类型可以分为并行通信和串行通信。这两者的关系可以简单理解为多车道和单车道的关系,即并行通讯可以一次发送多个位,实现字节为单位的通信; 串行通信则是一次发送一位,发送八次才能发完一个字节。我们本文所讲的串口通信自然就是串行通信了。
STC89C52有两个引脚是专门做UART串行通信的,一个是P3.0, 一个是P3.1, 它们还分别有另外的名字,叫RXD和TXD, 由它们组成的通信接口就称为串行接口,简称串口。
两个单片机之间进行UART串口通信,基本演示图如下:
先补充一些基础知识:
RXD :Recieve Data 串口接收端
TXD :Transmit Data 串口发送端
GND :地线,保持通信的基准数
那就可以很容易理解了:
你发送,我接收; 我发送,你接收。
b)RS-232通信接口
这个接口,就是我们常见的台式电脑的那个9针串行接口。
对这个接口,我们不需要深入理解,了解一下就可以了
1、物理上分为9针(公头)和9孔(母头)
2、9个引脚,我们只需了解3个,分别为2引脚RXD, 3引脚TXD, 5引脚GND
3、这3个要了解的引脚虽然和上面提到的3个名称相同,却又有不同的地方,因为它们不能直接与单片机联通,因为并不是所有的电路的5V都表示高电平,0V表示低电平。
4、对于RS-232标准来说,它是个反逻辑,或负逻辑。负逻辑的解释为:它的TXD和RXD的电压,-3V ~ -15V表示1, +3V ~ +15V电压代表0 。简单来说就是低电平表示1,高电平表示0
5、9针RS-232串口不能与单片机直接连接,需要用一个电平转换芯片MAX232完成。
c)USB转串口通信
工业上还有RS-232串口通信的大量使用,但在商业技术应用上,已将慢慢地使用USB转UART技术取代了RS-232串口。例如,我们的笔记本电脑就没有了RS-232串口,单一样不妨碍我们用笔记本和单片机通信,因为我们在电路(单片机的电路)中添加了一个USB转串口芯片,如CH340T芯片。
- 串口通信系列一
- C# 串口通信系列
- 使用winAPI 串口通信(一)
- 使用winAPI 串口通信(一)
- 菜鸟学习串口通信一
- Qt5串口通信(一)
- Java串口通信学习(一)
- 裸机系列——2440串口通信
- 51系列单片机之串口通信
- 裸机系列——2440串口通信
- arduino学习系列——串口通信
- STM32F1x系列——串口通信
- 幡然醒悟系列之串行通信和串口通信
- 串口通信之项目实例一
- Java串口通信(CommunicationsAPI)(一)
- 51单片机之串口通信(一)
- boost实现串口通信(一):小试牛刀
- 【Java上位机】(一)串口通信
- jeecg当中的<t:datagrid>标签的处理类dataGridTad的end方法
- redis cluster redis-trib.rb 启动报错 Sorry, can't connect to node
- 关于qt的线程结束
- iOS-获取验证码中的倒计时功能
- 好无聊
- 串口通信系列一
- C# Json 写到吐
- apache commons io 项目摘要(2016-04-21更新)
- Android应用自动更新功能的代码实现
- 【FFMpeg视频开发与应用基础】五、调用FFMpeg SDK封装音频和视频为视频文件
- slowhttptest 尝试
- st3搭建python开发环境
- GCD 深入理解:第二部分
- gulp