STM-32串口

一,通信接口

        1,目的:进行信息传递

        2,双方约定规则:通信协议

        3,USART串口:引脚TX(TXD):数据发送脚 ,引脚RX(RXD):数据接收脚

        4,I2C通信:SCL:时钟,SDA:数据

        5,SPI通信:引脚:SCLK:时钟,MOSI:主机输出数据脚,

                                                MISO:主机输入数据脚,CS:片选:用于指定通信的对象
        6,CAN通信:差分数据脚CAN_H , CAN_L,用两个引脚表示一个差分数据

        7,USB通信:一对差分数据脚:DP(D+),DM(D-)

        8,数据按照协议规定在引脚上进行输入和输出,从而实现通信

        9,全双工:指通信双方能够同时进行双向通信,互不影响,一般来说全双工的通信都有两根通信线

        10,半双工:CAN和USB两根差分线组合成一根数据线

        11,单工:数据只能从一个设备到另一个设备,而不能反着来

        12,时钟特性:同步:I2C和SPI有单独的时钟线

                              异步:  USART串口,CAN,USB,没有时钟线,需要双方约定一个采样频率

                                           还需要加帧头帧尾,进行采样位置对齐     

        13,电平特性:

                        单端信号:引脚的高低电平都是对GND的电压差,单端信号通信双方要共地,GND接一起

                        差分信号:可以极大地提高抗干扰特性,所以差分信号一般传输速度和距离都会非常高

        14:设备特性: 点对点:直接传输数据,多设备:需要有一个寻址的过程,确定通信对象

二,串口通信

        1,USB转串口模块,陀螺仪传感器模块,蓝牙串口模块

三,硬件电路

四,电平标准

五,串口参数及时序

        1,串口中,每一个字节都装载在一个数据帧里

        2,数据帧由起始位,数据位,停止位组成

        3,数据位后面可以加一个奇偶校验位,这样数据位就是9位:有效载是前8位,代表一个字节

        4, 不需要传输的时候高电平,需要时发送一个起始位,产生下降沿

                                                           结束时发送一个停止位,引脚恢复为高电平

        5,数据位,低位先行,例:发送0xFF(0000 11111),波形如下图翻转

        6,校验位:无校验(左图),奇校验,偶校验(右图)

                例:奇校验:即包括校验位在内的9位数据会出现奇数个1

                        例:传输0000 1111,4个1,偶数个,则校验位就会补一个1

 六,USART

        1,常用串口参数:波特率:9600或115200,数据位8位,停止位1,无校验

        2,寄存器程序上只表现一个寄存器,实际上硬件有发送寄存器(TDR只写)和接受寄存器

(RDR只读)

        3,当硬件检测到你写入数据了USART,它就会检查,当前移位寄存器是不是有数据正在移位               如果没有这个数据就会全部移动到发送寄存器,准备发送 。

                当数据移动到移位寄存器时会置一个标志位(TXE)发送寄存器空,

                检查标志位,如果置1了,就可以在TDR写入下一个数据了

        4,nRTS请求发送,nCTS清除发送,是输入脚。前面加个n是低电平有效

   七,USART基本结构

        1,波特率发生器,用于产生约定的通信速率。时钟来源是PCLK2/1

        2,经过波特率发生器分频后,产生的时钟通过发送控制器和接收控制器

        3,发送控制器和接收控制器,用来控制发送移位和接收移位

        4,之后,由发送数据奇存器和发送移位寄存器这两个寄存器的配合,将数据一位一位地移出去

                转移的同时会置一个TXE标志位

        5,通过GPIO 口的复用输出,输出到TX引脚,产生串口协议规定的波形

        6,接受部分:RX引脚的波形,通过GPIO输入。

                在接收控制器的控制下,一位一位地移入接收移位寄存器

                转移的同时置一个RXNE标志位(可以申请中断)

        7,开关控制:配置完成后用cmd开启外设

  八,串口发送

        1,初始化串口

                1.1  开钟,开YSART和GPIO

                1.2  GPIO初始化,把TX配置成复用输出,RX配置成输入

                1.3  配置USART,用结构体配置

                1.4  如果需要接收功能,需要配置中断(加上TConfig和NVIC的代码)

                1.5  cmd开启串口

                1.6如果要发送数据,就调用发送的函数。如果要接收数据,就调用接收的函数

                        如果要获取发送和接收的状态,就调用获取标志位的函数。

        2,库函数介绍

                2.1 USART_ClockInit,USART_ClockStructInit 配置同步时钟输出的

                2.2 USART_SendData发送数据,即写DR寄存器

                2.3 USART_SendData接收数据,即读DR寄存器

        3,一根线只能有一个输出,但可以有多个输入。所以输入脚GPIO和外设都可以同时输入。

                 一般RX配置是浮空输入或者上拉输入

        4,串口配置应该与软件配置一致

                HEX:原始数据,文本模式:字符串的形式显示

        5,数据显示

                5.1字符串结束标志位

        7,printf重定向

                serial的c和h文件要加头文件

                main也要加main

                sprintf(位置,内容);可以指定打印位置

        8,分装sprintf

                8.1Serial的c文件加#include<stdarg.h>
九,HEX数据包

       HEX数据包:以FF为包头,FE为包尾,中间固定4个字节为数据

      文本数据包:@为开头,中间为数据,最后要换行

HEX数据包

        1,作用:把一个个单独的数据打包起来,方便我们进行多字节的数据通信

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值