zhansb 发表于 2015-1-7 09:59:34

firefly上使用python操作串口


1.前期准备
Firefly-RK3288(以下简称FR)烧写的是单ubuntu 14.04系统,开发板上的uart1使用官方的USB转TTL 串口模块连上PC
PC上使用C-Kermit配置好参数,速度设置为9600

2.内核开启uart1
--- a/kernel/arch/arm/boot/dts/firefly-rk3288.dts
+++ b/kernel/arch/arm/boot/dts/firefly-rk3288.dts
@@ -404,6 +404,13 @@
         pinctrl-0 = <&uart0_xfer &uart0_cts>;
};

+&uart_bb {
+      status = "okay";
+      dma-names = "!tx", "!rx";
+      pinctrl-0 = <&uart1_xfer &uart1_cts>;
+};
+
+
&i2c0 {
      status = "okay";
      rk808: rk808@1b {
编译内核后单独烧写resource.img,重启后可以看到设备/dev/ttyS1

3.FR上Ubuntu安装python-serial:
sudo apt-get install python-serial

4.python验证uart收发,需要sudo执行:
firefly@firefly:~/test$ sudo python
Python 2.7.6 (default, Mar 22 2014, 23:30:12)
on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import serial
>>> ser = serial.Serial("/dev/ttyS1", 9600)
>>> count = ser.inWaiting()
>>> count
32
>>> ser.read(count)      #读取PC上发送的数据
'firefly python serial read test\n'
>>>

>>> ser.write("firefly python serial write test")   #发送数据到PC上
32

收发正常:victory:



5.完整测试文件uart_fr.py:
# -*- coding: utf-8 -*
import serial
import time
# 打开串口
ser = serial.Serial("/dev/ttyS1", 9600)
ser.write("***********firefly python serial************\r\n")
def main():
    while True:
      # 获得接收缓冲区字符
      count = ser.inWaiting()
      if count != 0:
            # 读取内容并回显
            recv = ser.read(count)
            ser.write(recv)
      # 清空接收缓冲区
      ser.flushInput()
      # 必要的软件延时
      time.sleep(0.1)

if __name__ == '__main__':
    try:
      main()
    except KeyboardInterrupt:
      if ser != None:
            ser.close()

6.执行:sudo python uart_fr.py


参考:http://blog.csdn.net/xukai871105/article/details/22713925

wandyqian 发表于 2015-12-14 10:56:30

楼主,你所说的第二步,编译内核后烧写resource.img,我烧写之后,RK3288起不来了,屏幕一直闪烁,不知道会时什么原因啊?
      是不是因为编译内核的时候没有烧写parameter啊?可是我只要烧写boot的同时烧写parameter,编译内核就通不过,每次启动板子都报es8323_create file error,是不是parameter有问题啊?(我的RK3288系统是Firefly-RK3288_Ubuntu14.04_201412111722.img)

zhansb 发表于 2015-12-15 08:59:31

可以看看这个时候的串口信息,拿出来分析一下
页: [1]
查看完整版本: firefly上使用python操作串口