制作小车都用raspberry pi上的口有些麻烦,所以把一些基础控制给51单片机解决,raspberry pi控制高层应用。所以测试一下raspberry pi串口连接调试51单片机。
第一步:
sudo apt-get install python-serial
sudo easy_install pyserial
第二部接线部分图
raspberry pi板子串口接线图
杜邦线连接
代码部分
raspberry pi python串口控制代码
#!/bin/env python # -*- coding:utf-8 -*- # ------------------------------- # Filename: # Revision: # Date: 2013-02-5 # Author: simonzhang # Email: simon-zzm@163.com # WWW: www.simonzhang.net # ------------------------------- import serial import time #### 定义小灯亮灭初始值 i = 0 #### 实例化串口 ser = serial.Serial('/dev/ttyAMA0', 9600, timeout = 0.5) for j in range(10): if ser.isOpen() == False: ser.open() #### 每次循环对上值次取反 if i == 0: i = 1 else: i = 0 #### 向串口发送字符 ser.write(chr(i)) #### 获取串口返回值 #### linux为福阻塞模式,在阻塞模式下 #### 会报错,所以抱起来就好了。 try: re = ser.readlines() except: pass print re time.sleep(2)
51单片机代码
#include#include typedef unsigned char uint8; typedef unsigned int uint16; uint8 num; sbit D0 = P0^0; void init() { SCON = 0x50; TMOD = 0x20; TH1 = 0xFD; TL1 = 0xFD; TR1 = 1; //打开定时器 ES = 1; EA = 1; //打开总开关 } void interrupt_uart() interrupt 4 { if(TI) { TI = 0; REN = 1; } if(RI) { RI = 0; num = SBUF; if (num == 1) { D0 = 0; SBUF = 0; } else { D0 = 1; SBUF =1; } REN = 0; } } main() { init(); while(1); }
源码下载
raspberrypito51
单片机的IO直接接RPi,不会烧吗?RPi的IO口是3.3v的。
RPi有3.3的也有5.5的。串口调试没有问题不会烧的。我这个实验是RPi供电5.5V。
串口有大阻值上拉电阻,不会烧
有可能。