制作小车都用raspberry pi上的口有些麻烦,所以把一些基础控制给51单片机解决,raspberry pi控制高层应用。所以测试一下raspberry pi串口连接调试51单片机。
第一步:
sudo apt-get install python-serial
sudo easy_install pyserial
第二部接线部分图
raspberry pi板子串口接线图
杜邦线连接
代码部分
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. # ------------------------------- 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
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