Firefly开源社区

打印 上一主题 下一主题

Firefly Prime 串口的波特率Uart0 只能是9600,如何修改

27

积分

0

威望

0

贡献

游客

积分
27

Firefly Prime 串口的波特率Uart0 只能是9600,如何修改

发表于 2016-5-27 10:20:13      浏览:5062 | 回复:2        打印      只看该作者   [复制链接] 楼主
参考网站
http://wiki.t-firefly.com/index.php/FirePrime/UART
该网站对串口的配置进行了详细的说明。
FirePrime 开发板内置 3 路 UART,分别为 uart0,uart1,uart2。Uart0对应的是ttyS0。
然后在android中init.connectivity.rc文件修改权限,


然后编译,生成img文件,烧写到firefly prime开发板中。
通过串口线与PC机相连,在PC端打开secureCRT软件,然后编写apk对串口ttyS0进行写操作。
目前遇到的问题是:
      1、apk代码打开ttyS0的波特率是115200, secureCRT设置波特率为11520,不能接收到正确的数据。
      2、apk代码打开ttyS0的波特率是9600,secureCRT设置波特率为9600,能够接收到正确的数据。
     由于目前应用需要速度考虑原因,需要将波特率改为 115200,因此想问下这个如何修改呢?
额外:
      按照http://wiki.t-firefly.com/index.php/FirePrime/UART网站设置ttyS1,能够以波特率115200正常工作。



回复

使用道具 举报

582

积分

10

威望

8

贡献

技术大神

Rank: 3Rank: 3

积分
582
QQ
发表于 2016-5-27 18:04:02        只看该作者  沙发
本帖最后由 54zw 于 2016-5-27 18:39 编辑

修改源代码kernel/drivers/tty/serial/serial_core.c里这个函数int uart_register_driver(struct uart_driver *drv)里
这个地方改为:normal->init_termios.c_cflag = B9600 | CS8 | CREAD | HUPCL | CLOCAL;
修改为:normal->init_termios.c_cflag = B115200 | CS8 | CREAD | HUPCL | CLOCAL;

如果是APK的话其实可以在APK里重新设置波特率,上面这样改只是将默认的9600改为11520

回复

使用道具 举报

27

积分

0

威望

0

贡献

游客

积分
27
发表于 2016-5-30 15:28:12        只看该作者  板凳
谢谢54zw朋友的回答,这个方法也是可行。
我自己找到另外一种方法,是利用busybox 里面的stty函数,在init.rc

然后重新编译源代码,烧写到设备中,这样开机串口的波特率也可以设置为115200,希望对其他人有帮助,再次谢谢54zw朋友的解答。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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