UART串口通信

基本原理与概念

串口通信在不同的硬件上的具体表现不同,但基本原理与操作流程都差不多:

UART是一种串行、异步、全双工的通信协议,将所需传输的数据一位接一位地传输,在UART

通讯协议中信号线上的状态位高电平代表’1’,低电平代表’0’。其优点是通信线路简单,只要一对传

输线就可以实现双向通信,成本较低。

其一次通信数据(一帧)有十一位,包括1位起始位(低)、8位数据位、1位校验位、1位停止位(1)

具体流程为:1.空闲时数据线为高电平;

                      2.发送一个低电平表示起始位;

                      3.uart的数据位是先发送低位,再发送高位;

                      4.奇偶校验位校验传输数据中“1”的个数为奇数个(奇校验)或偶数个(偶校验)来指示传输数据是否正确;

                      5.停止位为高电平,以便下次的起始位能被表现出来;

此为一个流程:

配制

在stc89c51芯片中,其配制流程如下:

1.明确需要的配制:要考虑工作方式与波特率,数据位位数,奇偶校验位,停止位

首先设置定时器工作方式TMOD以及定时器1的初值,初值公式为:

2^8-2smod * focs / 32 / bps / 12,其中smod表示PCON的B7,根据实际情况带入,不是0就是1,bps目标波特率,2^8这里的8来自定时器的工作方式,因为我们使用的是8位自动重装方式,所以是8

工作方式分4种,通过SCON寄存器配制,其区别如下:

模式零:设置方式为将寄存器SCON第6位(sm1)第7(sm2)位置0,其余位保持不变,其波特率为固定值晶振频率/12

模式一:sm1为1,sm0为0,波特率可调,为2的(PCON寄存器第7位的值-5)次方×定时器1的溢出率

模式二:sm1为0,sm0为1,波特率可调,为2的(PCON寄存器第7位的值-6)次方×晶振时钟频率

模式三:sm1为1,sm0为1,波特率可调,为2的(PCON寄存器第7位的值-5)次方×定时器1的溢出率

综上所述,需要调节TMOD/SCON/PCON寄存器,还需通过调节TCON来设置计数器,初始化代码如下:

void uart_init(u8 baud)
{
TMOD|=0X20; //设置计数器工作方式 2
SCON=0X50; //设置为工作方式 1
PCON=0X80; //波特率加倍
TH1=baud; //计数器初始值设置
TL1=baud;
TCON=0x40;
}

配制完毕,即可通过SBUF寄存器写入一帧数据(一个char类型字符):

void send(char a)
{
    SBUF=a;
    while(SCON & 0x01 ==0);//证明发送完毕
    SCON &=~(0x01<<1);//清除T1,防止下次发送出错
}

安装Docker安装插件,可以按照以下步骤进行操作: 1. 首先,安装Docker。可以按照官方文档提供的步骤进行安装,或者使用适合您操作系统的包管理器进行安装。 2. 安装Docker Compose插件。可以使用以下方法安装: 2.1 下载指定版本的docker-compose文件: curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 2.2 赋予docker-compose文件执行权限: chmod +x /usr/local/bin/docker-compose 2.3 验证安装是否成功: docker-compose --version 3. 在安装插件之前,可以测试端口是否已被占用,以避免编排过程中出错。可以使用以下命令安装netstat并查看端口号是否被占用: yum -y install net-tools netstat -npl | grep 3306 现在,您已经安装Docker安装Docker Compose插件,可以继续进行其他操作,例如上传docker-compose.yml文件到服务器,并在服务器上安装MySQL容器。可以参考Docker的官方文档或其他资源来了解如何使用DockerDocker Compose进行容器的安装和配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Docker安装docker-compose插件](https://blog.youkuaiyun.com/qq_50661854/article/details/124453329)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Docker安装MySQL docker安装mysql 完整详细教程](https://blog.youkuaiyun.com/qq_40739917/article/details/130891879)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值