jetson nano与51的串口通信

本文介绍了如何使用Python在NVIDIAJetsonNano上通过USB与51单片机进行通信,包括设置串口参数、数据传输以及51单片机的接收和处理。重点提到了ASCII编码的使用和51单片机晶振匹配的重要性。
Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

jetson nano端采用python,其他博主的有许多相关通信代码,例如与pc机通信,

#!/usr/bin/python3
import time
import serial
 
print("NVIDIA Jetson Nano Developer Kit")
 
serial_port = serial.Serial(
    port="/dev/ttyUSB0",
    baudrate=9600,
     timeout = 2  # 超时时间

)
# Wait a second to let the port initialize
time.sleep(1)
 
try:
    # Send a simple header
    serial_port.write("A".encode('ascii'))

    while True:
        if serial_port.inWaiting() > 0:
            data = serial_port.read()
            print(data)
            serial_port.write(data)
                
except KeyboardInterrupt:
    print("Exiting Program")
 
except Exception as exception_error:
    print("Error occurred. Exiting Program")
    print("Error: " + str(exception_error))
 
finally:
    serial_port.close()
    pass

 在这里我特别强调四点,首先由于普中科技这款51单片机自带USB转ttl串口模块,所以可以直接用数据线(一定要能传数据的)将两者直接连接,第二点注意port,由于我们jetson端用的USB串口,所以port必须要写成USBx,x具体是多少,可以在插上usb后,输入ls -l /dev/tty* 来查看。第三点在于用.write("".encode('ascii'))函数向串口发送数据时一定要采用ascii编码方式,因为51本事不支持utf-8解码,具体不阐述了。最后51端一定一定要对上自己单片机的晶振是多少,否则绝对通信不成功。

#include <REGX52.H>
#include "UART.h"

unsigned char a,b;
void main()
{
	UART_Init();
	
	while(1)
	{
		
	}
}
void UART_Routine() interrupt 4
{
	if(RI==1)   
		
	{ 
		RI=0;
		a=SBUF;
		UART_SendByte(a);
		if(a=='A')
		{
			P2=0x0F;
			UART_SendByte(SBUF);
			
		}
		else
			{
				P2=0xaa;
			}
		
	}				
}

(没展示全部代码,需要的找我要)最后实验现象就是当运行python端时,51会接受字符A,然后P2端8个小灯会一半亮一半灭。

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值