Firefly开源社区

firefly上使用python操作串口

2505

积分

56

威望

46

贡献

社区版主

Rank: 7Rank: 7Rank: 7

积分
2505

优秀版主论坛元老

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

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)
[GCC 4.8.2] 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
回复

使用道具 举报

14

积分

0

威望

0

贡献

游客

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

使用道具 举报

2505

积分

56

威望

46

贡献

社区版主

Rank: 7Rank: 7Rank: 7

积分
2505

优秀版主论坛元老

发表于 2015-12-15 08:59:31     
可以看看这个时候的串口信息,拿出来分析一下
回复

使用道具 举报

*滑块验证:

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表