Posted on 2013 年 2 月 5 日 by 张 子萌
制作小车都用raspberry pi上的口有些麻烦,所以把一些基础控制给51单片机解决,raspberry pi控制高层应用。所以测试一下raspberry pi串口连接调试51单片机。
第一步:
sudo apt-get install python-serial
sudo easy_install pyserial
第二部接线部分图
raspberry pi板子串口接线图
raspberry 串口接线图1
杜邦线连接
raspberry 串口接线图3
代码部分
raspberry pi python串口控制代码
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/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单片机代码
?
1
2
3
4
![raspberry pi 串口控制51单片机 | 张子萌的个人小站 raspberry pi 3 wifi](http://img.aihuau.com/images/31101031/31092843t01dc29adefcaa79a15.jpg)
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <reg52.h>
#include <intrins.h>
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