STC12单片机串口2的应用 在STC12单片机中,串口2和串口1都是重要的外设,但是它们在使用波特率发生器时有所不同。串口2只能使用“独立波特率发生器”作为波特率发生器,而串口1可以用定时器1做波特率发生器,也可以选择“独立波特率发生器”作为波特率发生器。 在本文中,我们将详细介绍STC12单片机串口2的应用,包括串口2的初始化、串口2的中断函数、串口2的发送和接收函数等。 让我们来看一下串口2的初始化函数`Serial_Iint()`。在这个函数中,我们首先设置S2CON寄存器的值为0x50,这个值将串口2设置为工作方式1,允许接收数据。然后,我们设置PCON寄存器的值为0x00,以便不加倍波特率。接着,我们设置AUXR寄存器的值为0x10,以便允许独立波特率发生器运行。我们设置BRT寄存器的值为0xFD,以便设置独立波特率发生器的定时器。 在串口2的初始化完成后,我们可以使用`Send_Char()`函数来发送一个字符。这个函数首先将串口2的中断关闭,然后将要发送的字符写入S2BUF寄存器中。然后,它等待串口2的发送完成,最后将串口2的中断打开。 在发送一个字符串时,我们可以使用`Send_String()`函数。这个函数将字符串中的每个字符都发送出去,并等待串口2的发送完成。 在主函数中,我们首先初始化串口2,然后在循环中不断发送字符串“hello! mazirong\n”。在发送完成后,我们延时1000ms,然后继续发送下一个字符串。 在串口2的中断函数`Serial_2Int()`中,我们首先关闭串口2的中断,以防止中断的嵌套。如果串口2的发送中断(S2TI)产生,我们将其清除。如果串口2的接收中断(S2RI)产生,我们将其清除,并将接收到的数据存储在Rec_Buf数组中。 STC12单片机串口2的应用非常广泛,包括串口2的初始化、串口2的中断函数、串口2的发送和接收函数等。这篇文章为读者提供了一个完整的示例代码,帮助读者更好地理解STC12单片机串口2的应用。
- 粉丝: 3
- 资源: 941
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助