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上的程序输出:
#include<pic.h>//包含单片机内部资源预定义#ifndef uchar
#define uchar unsigned char
#define uint unsigned int
#endif
//__CONFIG(0x2129)
bit rec_flag //串口中断标志位,有串口中断,置1
uchar uartdata //串口数据保存到此位置中
void Uart_char(uchar dat)//串口发送一个数据
/*************************************************************
函数原型:void main(void)
功能:等待串口发送中断到来,将接收到的设计再通过串口发回
*************************************************************/
void main(void)
{
TRISB1=1
TRISB2=1
SPBRG=0X19 //设置波特率为9600BPS
TXSTA=0X24 //使能串口发送,选择高速波特率
RCSTA=0X90 //使能串口工作,连续接收
RCIE=0X1 //使能接收中断
GIE=0X1 //开放全局中断
PEIE=0X1 //使能外部中断
//INTCON=0X00
/* while(1) //查询模式下
{
RCIE=1
while(RCIF==0)
RCIE=0
Send_char(RCREG)
}
*/
while(1) //中断模式下,等待中断的到来
{
if(rec_flag==1) //如果接收中断到来
{
rec_flag=0//接收标志清零
Uart_char(uartdata)//将接收来的数据发送到串口
}
}
}
/**********************************************
函数原型:void Uart_char(uchar dat)
功能:将dat数据通过串口传送出去
**********************************************/
void Uart_char(uchar dat)
{
TXREG=dat //将dat数据存入TXREG
// TXEN=1 //启动发送,TSR开始移位 *** 作。
while (TRMT==0) //判断是否TSR发送完毕,未完等待。
// TXEN=0 //关发送功能,防止TXREG空时,TXIF产生置位
}
/**********************************************
函数原型:void interrupt usart(void)
功能:串口接收到数据,接受发来的数据将接
收到数据标志位rec_flag置1
**********************************************/
void interrupt usart(void)
{
if(RCIF) //判断是否为串口接收中断
{
rec_flag = 1
//RCIF=0
uartdata = RCREG// 接收数据并存储
//TXREG=recdata //把接收到的数据发送回去
}
}
这段程序应该对你有用
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)