五种通信总线

五种通信总线降低信号干扰 共模干扰 即一根线为地线 另一个线的高低电平表示 1 和 0 再浅显的说 比如一条线电压为 15V 但由于线长而受干扰变为 0V 了 如果是共地那种那么就会导致信号出错 而如果是差分信号 另一跟线也会受到同种影响

大家好,欢迎来到IT知识分享网。

并行通信:

串行通信

同步

事情有先后,要一件一件的做;如果前一件事卡在那做不了,后面的事情就阻塞在那没法做,跟着遭殃。

异步

单工

半双工

全双工

串口协议UART(串行、全双工、异步)

void UART_Send_Byte(char Dat) { 
    //等待发送寄存器为空,即上个数据发送完成 while(!(UART2.UTRSTAT2 & (1 << 1))); //将要发送的数据写入发送寄存器 UTXH2 UART2.UTXH2 = Dat; } char UART_Rec_Byte(void) { 
    char Dat = 0; //判断接收寄存器是否收到数据 if(UART2.UTRSTAT2 & 1) { 
    Dat = UART2.URXH2; return Dat; } else { 
    return 0; } } void UART_Send_Str(char *pstr) { 
    while(*pstr != '\0'){ 
    UART_Send_Byte(*pstr++); } } int main() { 
    char RecDat = 0; UART_Init(); while(1) { 
    UART_Send_Str("Hello World\n"); } return 0; } 

上述UART_Send_Str(“Hello World\n”);类似printf(“Hello World\n”);

以前的printf是调用c库的,执行在显卡,现在是开发板上实现printf的功能而且是执行在UART,这种情况就是printf的输出重定向

RS232和RS485

IIC(串行、半双工、同步)

在这里插入图片描述
在这里插入图片描述
IIC不是点对点的通信(不是串口那种TX接RX,RX接TX)
SDA是总线,SCL是时钟
在这里插入图片描述
按照上面通信过程,假设单片机A作为主机,控制日历时钟(地址0x03,占数据的7位,后面留1位是用来判断收发状态(数据传送方向)的,如果是0则表示接下来的是主机发从机数据,如果是1则表示接下来是主机从从机那接收数据),首先单片机A发送起始信号启用总线,然后单片机A发送一个字节数据指明从机地址0x03和传送方向,接着对应从机给出回应反馈应答信号,之后就是按照已固定的传送方向进行通信(如果传送方向位是0则后面一直是主机发从机数据然后从机回应反馈应答信号,如果是1则后面一直是从机发主机数据,直到主机不再应答传输数据结束),最后主机发送停止信号释放总线结束信号传输
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
和串口的先发低位不同,IIC是先发高位,然后从高到低。










9位=7位从机地址+1位传送方向标志位+1位对齐从机的应答位

SPI(串行、全双工、同步)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
比如高电平使能,所以CS1发1,CS2等要发0,从而表示跟从机1通信。



免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/130668.html

(0)
上一篇 2025-08-13 19:10
下一篇 2025-08-13 19:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信