目录
一.串口通信和RS-232标准
1.串口通信
串口是数据通信接口,其功能是作为 CPU 和串行设备间的编码转换器。当数据从 CPU 经过串行端口发送出去时,字节数据转换为串行的位;在接收数据时,串行的位被转换为字节数据。
串口通信指串口按位发送和接收字节。在串口通信中,常用的协议包括RS-232、RS-422和RS-485。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。
波特率
这是一个衡量符号传输速率的参数。指的是信号被调制以后在单位时间内的变化,即单位时间内载波参数变化的次数。
数据位
这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据往往不会是8位的,标准的值是6、7和8位。如何设置取决于你想传送的信息。
停止位
用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。
奇偶校验
奇校验要求有效数据和校验位中“1”的个数为奇数,比如一个8位长的有效数据为:01101001,此时共有4个“1”,为达到奇校验效果,校验位为“1”,最后传输的是8位有效数据加1位校验位,共9位。偶校验刚好相反,要求有效数据和校验位的“1”数量为偶数,则此时为达到偶校验效果,校验位为“0”。而0校验则无论有效数据中是什么数据内容,校验位总是为“0”,1校验校验位总是为“1”。
2.RS-232标准
RS-232标准接口是常用的串行通信接口标准之一。RS232标准采用的接口是9针或25针的D型插头,常用的一般是9针插头。
RS-232标准在-12~3V逻辑为1,在+3V~+15V逻辑为0。
TTL器件输出低电平要小于0.8V,高电平要大于2.4V。输入,低于1.2V就认为是0,高于2.0就认为是1。
由于 RS-232电平标准的信号不能直接被 控制器直接识别,所以这些信号会经过一个“电平转换芯片”转换成控制器能识别的 “TTL 标准”的电平信号,才能实现通讯。
二.安装STM32CubeMX,搭建STM32的开发环境
1.安装jdk
由于STM32CubeMX是Java实现的,需要安装jdk环境。
jdk官网下载链接:Java Downloads | Oracle
选Windows的下载:
这个安装很简单,跟着安装步骤一步一步安装下去就可以了。由于我已经安装完成了,所以就不截图具体步骤了。
2.安装STM32CubeMX
下载链接:
STM32CubeMX - STM32Cube initialization code generator - STMicroelectronics
2.1以管理员身份运行并安装 SetupSTM32CubeMX-4.27.0.exe ,进入下面这个界面后,点击Next
2.2点击"I accept the terms of this license agreement",接着选择Next
2.3选择安装位置,安装位置不要出现中文,不然可能出现问题。选择好安装位置后,点击next
2.4 继续下一步,点击next
2.5然后等待安装完成
3.安装固件库
3.1打开STM32cubemx,选择 Help->Magne 安装固件库
3.2选择F1系列下的安装包,点击Install Now
3.3等待下载,下载完成后会出现绿框。
三.LED流水灯
1.新建工程
1.1点击new project
1.2选择STM32F103C8芯片