7.22笔记

规定引脚

TX发送 RX接收

SLC时钟   SDA数据

SCLK时钟   MOSI主机输出数据   MISO主机输入数据   CS片选(用于指定通信对象)

CAN_H CAN_L  差分数据脚(用两个引脚表示一个差分数据)

DP DM 差分数据脚

全双工(Full Duplex)通信允许数据同时在两个方向上传输,即在一个通信链路中,既可以发送数据也可以接收数据,且这两者可以同时进行。这类似于电话通话,说话的同时能够听到对方的声音。全双工通信需要两个独立的信道,一个用于发送,另一个用于接收。

与全双工相对的是半双工(Half Duplex)通信,它在同一时刻只允许数据在一个方向上传输。如果一方正在发送数据,另一方只能接收数据,不能同时发送。对讲机是典型的半双工设备,当一方按下说话键时,他可以说话并被对方听到,但此时对方无法说话。

单工通信是数据传输的一种模式,其中信息只能沿一个方向传输,一方固定为发送端,另一方固定为接收端。

单工通信的数据流向是单向的,这意味着发送端持续发送数据,而接收端只能接收数据。这种模式下,通信双方使用的设备功能是固定的,不会改变角色,因此设备结构简单并且成本较低。由于信息传输是单向的,单工通信适用于一些特定的应用场景,如远程监控和数据收集系统。这些场景中通常只有一个方向上的数据传输需求,比如计算机向打印机发送文件。单工通信还用在特定控制指令的下达,例如遥控器对电视的控制。在这些情况下,并不需要从接收端向发送端回传数据。

同步(Synchronous)传输是一种在恒定速率下连续发送数据的通信方式,通常需要一个共同的时钟信号来同步发送和接收设备的时钟。SPI通信就是一个同步通信的例子,其中主设备提供一个时钟信号,从设备根据这个时钟信号来进行数据传输。

异步(Asynchronous)传输不需要共同的时钟信号。在异步通信中,每个字符的开始和结束由起始位和停止位标记,这使得接收方可以在每个字符开始时重新同步。UART通信就是采用异步传输方式,通过起始位和停止位来标识一个字符的传送。

通常会接地,确认0V参考电势(共地是两设备正常通信的前提)

单端(Single-ended)信号传输是一种使用单一导线传递信号的方式,其参考点通常是系统地(GND)。这种传输方式简单、成本低,但由于容易受到外界干扰和噪声的影响,适用于低至中等速度的数据传输以及短距离通信。

差分(Differential)信号传输利用两根导线传递信号,一根携带正相信号,另一根携带反相信号。差分传输的优势在于它能够有效抑制外部噪声和干扰,提高信号质量和可靠性,因此常用于高速数据传输和长距离通信。

波特率
        是指单位时间内传送二进制数据的位数,单位用bps或b/s(位/秒)表示。

起始位
        位于数据帧开头,只占 1位,始终为逻辑“0”,必须有。起始位用于表示一个数据帧的开始,起到同步作用。

数据位
        紧跟在起始位之后,用于传送数据。用户可根据情况确定为 5、6、7、8 位,低位在前,高位在后。通常采用 8 位数据位,用于传送一字节的数据.

校验位
        位于数据位后,占1位,用于表示串行传输中采用的校验方式,该位由用户根据需要决定,
停止位
        位于数据的最后,始终为逻辑“1”,必须有。停止位的长度由用户确定,可选择为1位、或 2 位。停止位表示一个数据的结束,也是为发送下一个数据帧做准备,同样也起到了同步的作用。
         

GPIO_Mode_AINAnalog In--模拟输入
GPIO_Mode_IN_FLOATINGFloating--浮空输入
GPIO_Mode_IPDIn Pull Down--下拉输入
GPIO_Mode_IPUIn Pull Up--上拉输入
GPIO_Mode_OUT_ODOut Open Drain--开漏输出
GPIO_Mode_OUT_PPOut Push Pull--推挽输出(点灯 )
GPIO_Mode_AF_ODAtl Open Drain--复用开漏
GPIO_Mode_AF_PPAtl Push Pull--复用推挽

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出         
 

1、对ST单片机的整个IO进行复位操作
void GPIO_DeInit(GPIO_TypeDef* GPIOx);
 
2、根据 GPIO_InitStruct 中指定的参数初始化外设 GPIOx 寄存器
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
 
3、把 GPIO_InitStruct 中的每一个参数按缺省值填
void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct);
 
4、读取指定端口管脚的输入
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
 
5、读取指定端口管脚的输出
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
 
6、拉高引脚输出电平
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
 
7、拉低引脚输出电平
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
 
8、对 IO进行写操作,仅可以自定义设置写0或写1,都0或都1
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);
 
9、对整个IO端口进行写操作,0xFFFF 对应 0-15 PIN全部置为1;0x0000全部置为0
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);
 
10、当引脚具有复用功能时,可进行设置
void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

 GPIO_SetBits(GPIOA, LED_PALL); // 将 GPIOA 的引脚 PA0-PA7 设置为高电平

结构体

typedef用法

/**
@brief USART 初始化结构体定义
*/
typedef struct
{
uint32_t USART_BaudRate; /* 此成员配置 USART 通信波特率。 */

uint16_t USART_StopBits; /* 指定传输的停止位数量。*/
*/
uint16_t USART_Parity; /*!< 指定奇偶校验模式。 */
uint16_t USART_Mode; /* 指定接收或发送模式是启用还是禁用。 */
uint16_t USART_HardwareFlowControl; /* 指定硬件流控制模式是启用还是禁用。*/
} USART_InitTypeDef;

定义了一个名为 USART_InitTypeDef 的结构体,用于初始化 USART(通用异步收发器)的配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值