#include "c8051f020.h"
unsigned char data1
void SYSCLK_Init()
void PORT_Init()
void UART0_Init()
void SYSCLK_Init()
{
unsigned int i
OSCXCN=0X67//0X67=0110,0111
for(i=0i<256i++)//等待>1ms
while(!(OSCXCN&0X80)) //等待XTLVLD变为1
OSCICN=0X88//时钟失效监测器,选择外部时钟源作为系统时钟
}
void PORT_Init()
{
XBR0 = 0x27/*交叉开关配置,URAT总线TX0置到P0.0口,RX0置到P0.1口, SPI总线SCK配置到P0.2口,
MOSI为P0.4口卖袜睁, NSS为P0.5,MISO配置到P0.3口,IIC总线SDA置到P0.6口�SCK置到P0.7 TX1,RX1配置到P1.0,P1.1,CEX0,CEX1,配置到P1.2,P1.3,外部中断int0配置到P1.4 */
XBR1 = 0x04
XBR2 = 0x44 /*允许功能选择开关有效*/
P0MDOUT = 0x1A/*SCK、MOSI和NSS为推拉式输出,MISO为开漏式.*/
P74OUT =0xff
}
void UART0_Init()
{
SCON0=0x50 //串口方式1
TMOD=0X20//选用定时器1作为波特率发好桥生器
TH1=0xF4 //波特率为4800
TL1=0xF4
ES0=1 //开启串口中断0
TF1=0
TR1=1 //定时器启动
PCON=0X80//波特率加倍 波特率为9600
TI0=1
}
void UART0_ISR() interrupt 4 using 1
{
if(RI0)
{
RI0=0//中断接收标志清零
data1=SBUF0//接收数据
SBUF0=data1//发送数据
while(TI0==0)
TI0=0//发送标志清零
}
}
main()
{
WDTCN=0XDE
WDTCN=0XAD
SYSCLK_Init()
PORT_Init()
UART0_Init()
EA=1
while(1)
}
软件准备:
NodeMCU v2提供三个UART。您可以在TXD0,RXD0,TXD1,TXD2,RXD2上看到它们:
我们可以使用UART库访问UART串口。
在本章中,我使用Arduino板作为UART源。我们从UART读取传入的消息。开始吧!
在串口通信的教程中,我使用Arduino Uno连接到NodeMCU板。我们在连接到Arduino板的NodeMCU上使用UART0。我们应该将RX引脚连接到TX引脚,将TX引脚连接到RX引脚。
以下是我们的连线方式:
我的接线实现如下图所示:
首仿闹汪先,我们使用Arduino IDE为Arduino UNO编写程序。我们使用SoftwareSerial模拟软串口10和11.该程序将等待输入的UART数据,然后在0和1引脚上发送到Arduino UART。接下来开始写这个程序:
Arduino程序:
保存这个程序。然后,将其上传到Arduino板。在上传之前,请确保Arduino UART(数字0,1,10和11引脚)不能连接到任何电路或传感器。下一步备仔是为NodeMCU板编写程序。创建一个名为uartdemo.py的文件。开始编写程序:
Nodemcu程序:
现在您可以通过WebREPL上传和运行MicroPython程序。完成弯凯后,将NodeMCU UART连接到Arduino UART(数字引脚:10和11)。要查看UART输出,请从Arduino IDE打开串行监视器工具。设置波特9600.您应该看到UART输出:
以下是WebREPL上的程序输出:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)