-
2020-12-09 15:27:06
stty -F /dev/ttyO0 -a
root@root:~# stty -F /dev/ttyO0 -a speed 230400 baud; rows 24; columns 80; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke
查看串口1(/dev/ttyO0)当前的参数,包括波特率、数据位等。 其中speed就是我们想要修改的波特率
stty -F /dev/ttyO0 ispeed 115200 ospeed 115200 cs8
该命令将串口1(/dev/ttyO0)设置成115200波特率,8位数据模式。一般情况下设置这两个参数就可以了,如果显示数据乱码,可能还需要设置其它参数,注意,此种方式只能设置标准的波特率,自定义的波特率是没法设置的。
root@root:~# stty -F /dev/ttyO0 ispeed 115200 ospeed 115200 cs8 root@root:~# stty -F /dev/ttyO0 -a speed 115200 baud; rows 24; columns 80; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke
更多相关内容 -
51单片机之串口波特率配置
2021-01-06 07:33:3251单片机之串口波特率计算方式0的波特率配置方式2的波特率配置方式1和3的波特率配置 232串口模式,共有4钟方式,其中方式0、方式2的波特率是固定的。方式1、方式3的是可变波特率,这两个是用T1定时器作为波特率发生... -
DSP2812串口波特率正确和良好的设计方法
2020-08-02 16:56:401.宏定义;2.设置波特率。 -
串口波特率转换的纯软件实现
2020-10-19 11:53:12串口通信,就是RS-232/RS-485通信,要求通信的双方波特率等通信格式一样才可以通信成功。可是在许多情况下,两种不同格式比如不同波特率的串口也要相互通信,这就必须进行串口波特率等格式的转换。 -
STM32系列串口波特率自适应官方应用文档(DM00327191_ZHV1.pdf)
2020-09-30 11:04:14STM32系列串口波特率自适应官方应用文档(中文),含检测模式介绍、ABR误差计算、软件自动波特率和硬件波特率的配置及实现方法。有示例,内容不多,全文只有20页左右,通俗易懂! -
串口波特率检测.rar
2019-09-18 09:07:41用VS2010 C# 写的串口波特率检测小软件的上位机程序,下位机不停发送0XAA,上位机不停改变波特率去匹配,代码简单,有注释。 -
STC15W408AS串口波特率9600,115200,收发字符串,控制继电器.rar
2021-06-25 11:27:20单片机串口接收,发送,字符串比较 -
51单片机串口波特率计算器v1.0_51单片机波特率计算器_
2021-09-30 05:11:18利用此计算器,很容易计算出51单片机波特率的定时器的初值,方便编程使用 -
嵌入式Linux系统中设置串口波特率
2014-08-22 13:46:48嵌入式Linux系统中,应用程序设置串口波特率代码示例,有需要的可以参考。 -
串口波特率计算
2011-12-08 18:00:27串口波特率计算是关于c51的,很不错的软件,希望大家能用得到 -
香蕉派,修改 uboot 和 kernel 串口波特率
2021-10-12 01:16:39buildroot(uboot-2018.07 + linux-4.18.12) 默认波特率 编译 $ make bananapi_m1_defconfig $ make 编译好后,SD 卡烧录镜像 sdcard.img,插入 BPI 启动,默认情况下 uboot 和 kernel 的串口波特率为 115200。我们...环境
硬件:bananapi m1
软件:buildroot(uboot-2018.07 + linux-4.18.12)
默认波特率
编译
$ make bananapi_m1_defconfig $ make
编译好后,SD 卡烧录镜像 sdcard.img,插入 BPI 启动,默认情况下 uboot 和 kernel 的串口波特率为 115200。我们把串口工具调到 115200,8n1,就可以看到系统启动时的 log 了,包括 uboot 和 kernel 的 log 打印。
修改波特率
如何修改波特率呢?同样也是分为两块,uboot 和 kernel。
先看 uboot,使用 make uboot-menuconfig 命令
在→ Device Drivers → Serial drivers
路径下,将 Default baudrate 改成 57600。然后重新编译 uboot。
其实就是修改 output/build/uboot-2018.07/.config 中的 CONFIG_BAUDRATE# # Serial drivers # CONFIG_BAUDRATE=57600 CONFIG_REQUIRE_SERIAL_CONSOLE=y CONFIG_SPECIFY_CONSOLE_INDEX=y CONFIG_SERIAL_PRESENT=y CONFIG_SPL_SERIAL_PRESENT=y CONFIG_CONS_INDEX=1 CONFIG_DM_SERIAL=y
接着修改 kernel 的串口波特率。不同的板子,不同的镜像,修改的位置是不一样的,我知道的有两种
1. 修改 dts
这里我看到编译好的镜像使用的是 sun7i-a20-bananapi.dtb 这个文件,于是就去修改 output/build/linux-4.18.12/arch/arm/boot/dts/sun7i-a20-bananapi.dts
chosen { // stdout-path = "serial0:115200n8"; stdout-path = "serial0:57600n8"; };
重新编译 kernel,再完整编译生成 sdcard.img,重新烧录,串口工具波特率改成 57600,启动
可以看到,uboot 阶段显示正常,到 kernel 阶段出现了乱码,显然 kernel 的串口波特率并没有修改成功,那问题出现在哪呢?2. 修改 boot.scr
仔细看了 uboot 的启动 log,没看到加载 sun7i-a20-bananapi.dtb 的打印,却看到了这一句
Found U-Boot script /boot.scr
这句是干嘛的呢?查资料知道,boot.scr 是通过 boot.cmd 编译生成的。
board/bananapi/bananapi-m1/boot.cmdsetenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait mmc dev 0 fatload mmc 0 $kernel_addr_r zImage fatload mmc 0 $fdt_addr_r sun7i-a20-bananapi.dtb bootz $kernel_addr_r - $fdt_addr_r
看到 boot.cmd 的内容瞬间就找到了答案,波特率是在这里通过启动参数的形式由 uboot 传递给 kernel 的。系统启动后,执行命令
cat /proc/cmdline
也能证实这一点Welcome to Bananapi M1 buildroot login: root # cat /proc/cmdline console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait #
console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait
这句就是 boot.scr 里面的内容。
下面我们来修改一下
boot.cmdsetenv bootargs console=ttyS0,57600 earlyprintk root=/dev/mmcblk0p2 rootwait mmc dev 0 fatload mmc 0 $kernel_addr_r zImage fatload mmc 0 $fdt_addr_r sun7i-a20-bananapi.dtb bootz $kernel_addr_r - $fdt_addr_r
编译
$ mkimage -A arm -T script -O linux -d boot.cmd boot.scr
我们可以不用重新编译并烧录整个镜像,只要单独编译并替换
boot.scr
这个文件就行了。替换后启动
可以看到,uboot 和 kernel 都以 57600 的波特率正常打印 log 了,通过cat /proc/cmdline
查看波特率也是 57600。# cat /proc/cmdline console=ttyS0,57600 earlyprintk root=/dev/mmcblk0p2 rootwait
-
Linux设置串口波特率等参数
2021-05-11 19:59:44stty查看串口参数stty -F /dev/ttyS0 -a11查看串口1(/dev/ttyS0)当前的参数,包括波特率、数据位等。stty设置串口参数stty -F /dev/ttyS0 ispeed 115200 ospeed 115200 cs811该命令将串口1(/dev/ttyS0)设置成115200...stty查看串口参数
stty -F /dev/ttyS0 -a
1
1
查看串口1(/dev/ttyS0)当前的参数,包括波特率、数据位等。
stty设置串口参数
stty -F /dev/ttyS0 ispeed 115200 ospeed 115200 cs8
1
1
该命令将串口1(/dev/ttyS0)设置成115200波特率,8位数据模式。一般情况下设置这两个参数就可以了,如果显示数据乱码,可能还需要设置其它参数,使用man查看stty其它设置选项。
cat打印串口数据
cat /dev/ttyS0
1
1
串口数据就可以在终端上显示了。
cygwin
这种方法同样适用于cygwin环境。
发送数据
echo "sss" > /dev/ttyS0
MSP430设置串口波特率的方法
给定一个BRCLK时钟源,波特率用来决定需要分频的因子N: N = fBRCLK/Baudrate 分频因子N通常是非整数值,因此至少一个分频器和一个调制阶段用来尽可能的接 ...
Linux下串口编程【转】
本文转载自:http://blog.csdn.net/w282529350/article/details/7378388 /************声明:本人只是见到这篇文章对我帮助很大才转载的,但 ...
MSP430精准配置高速串口波特率的方法
引言 在实际项目大批量生产调试设备时,笔者发现同样版本的程序在不同设备上运行时效果不一致,一部分设备串口通信正常,另外一部分串口通信不正常.通过示波器对多个设备的串口波特率及系统时钟频率测试, ...
第十三章 Openwrt 修改串口波特率 以适应普通51不支持 115200高速率
,单片机或arduino的串口波特率可自行设置.当然,一般都会设置9600,也可以设置为115200.假设现在openwrt波特率为115200,单片机的串口波特率为9600.要进行一个通信,该如何设 ...
Linux下串口编制【转】
串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用.常用的串口是RS-232-C接口(又称EIA RS-232-C)它是在1970年由美国电子工业协会(EIA)联合贝尔系统.调制解调 ...
Linux下串口編程遇到的接收数据错误及原因(0x0d,0x11接收错误)
摘要:Linux下串口编程遇到的接收数据错误及原因 来源:https://dotblogs.com.tw/k/2012/07/24/73572 近日在调试串口的时候发现,另一设备向我ARM板的串口发送 ...
linux UART串口驱动开发文档
转:http://www.360doc.com/content/10/0417/18/829197_23519037.shtml linux UART串口驱动开发文档时间:2010-01-09 14: ...
Linux下串口配置初步探寻
一.在struct termios结构体中,对串口进行基本配置(如波特率设置,校验位和停止位设置 等). (一): struct termios //串口的设置主要是设置struct termio ...
linux 使用串口连接设备console
linux使用串口连接cisco设备的console linux 自带一个串口命令:minicom,需要经过设置,之后就可以连接了. 传说是默认就可以,我可能RP不好,我必须要经过设置才可以. ...
随机推荐
Python 修饰符
def hello(fn): def wrapper(): print "hello" fn() print "goodb ...
php示例代码之empty函数
1 2 3 4 5 6 7 8 9 10 11 <?php $testVar=0; if(empty($testVar)) { echo 'msg:true'; } ...
【maven】 maven的setting.xml文件的详解
1 Maven的安装 安装Maven之前要确保已经安装好了jdk,并且配置好了环境变量JAVA_HOME.具体安装步骤如下: 从apache网上下载maven项目的压缩包.下载地址为:ht ...
redis(二)Redis适用场景,如何正确的使用
网络IO模型 Memcached是多线程,非阻塞IO复用的网络模型,分为监听主线程和worker子线程,监听线程监听网络连接,接受请求后,将连接描述字pipe 传递给worker线程,进行读写IO, ...
win 7 下Maven环境的搭建
Apache Maven,是一个软件(特别是Java软件)项目管理及自动构建工具. Maven是什么? 比较正式的定义:Maven是一个项目管理工具,它包含了: 一个项目对象模型 (Project O ...
CentOS 7单用户模式修改root密码
CentOS 7的单用户模式和6.5稍有不同 把ro改成 "rw init=/sysroot/bin/sh". 完成之后按 "Ctrl+x" chroot /s ...
Seajs是什么及其优缺点&;如何使用?
这篇文章主要介绍了Seajs的相关知识和和学习心得,适合刚接触SeaJS的同学,需要的朋友可以参考下,有更好的新手教程或文档,欢迎推荐.分享! 1.Seajs简介 Seajs,一个Web模块加载框 ...
php 的优化
=>PHP函数禁用 disable_functions = phpinfo,passthru,exec,system,popen,chroot,escapeshellcmd,escapeshel ...
Hadoop OutputCommitter
1. OutputCommitters MapReduce使用一个提交协议来确保作业(job)和任务(task)都完全成功或失败.这个通过 OutputCommiter来实现. 新版本 MapRedu ...
2017.11.13 flex 布局相关问题
一.今日任务:城市体验平台小程序的开发(由于数据还未完善,今天主要是 UI 布局的开发) 二.所遇问题 1. flex 布局问题: html:
-
LPC111x_LPC11Cxx_串口波特率配置工具v1.0绿色版
2019-08-07 03:01:31LPC111x_LPC11Cxx_串口波特率配置工具用于NXP LPC111x LPC11Cxx 系列芯片的 串口波特率寄存器配置,含小数分频寄存器,比官方用户手册上的算法更精确,自动生成代码和文件,使用非常方便! 如何使用:1.输入main ... -
Convert 串口波特率转换器RS232 485
2013-06-18 21:07:56Convert版工业级串口波特率转换器使用说明书 -
51单片机串口波特率
2021-11-16 10:11:21波特率需要使用定时器1 波特率 = ((2^SMOD)/32) * (定时器溢出率) 定时器溢出率 = 系统时钟/指令周期/装载数 SMOD = 1 ,波特率加倍 TH1 = TL1 = -(FOSC / INSTRU_CYCLE / 32 / BAUD); //Set auto-reload vaule ... -
STM32单片机修改串口波特率
2020-11-03 10:32:43对于STM32F1系列的开发板,串口波特率设置之后,就开始进行通信了,一般情况下是不需要修改的,但是在实际的项目开发中,我们可能需要通过串口对模块进行配置等操作,配置完模块之后进行数据之间的通信,又需要更改... -
STC89C52RC串口波特率程序
2021-05-20 01:31:50在整个串口波特率初始化子程序中,我们两种方式完整的代码都在里面,没有用注释符号标注的是6T模式方式的代码,用注释符号标注的是12T模式下通过定时器2来实现的代码。 6T或12T模式的设置是在烧写程序时自己选择的,... -
基于FPGA串口波特率自适应功能的设计与实现-论文
2021-05-18 11:08:51基于FPGA串口波特率自适应功能的设计与实现 -
FPGA提升串口波特率、QT增加波特率选项的方法
2021-06-05 20:25:41FPGA提升串口波特率、QT提高波特率支持的方法 本文主要讲解FPGA计算串口波特率的方法以及QT5对230400以上波特率的支持方法。 1.FPGA提升串口波特率 1.1确定FPGA串口的模块的时钟 FPGA常用的时钟频率有:25M/50... -
STM32串口波特率计算问题和常用波特率
2021-03-30 18:58:34一、分数波特率的产生 一、接收器和发送器的波特率在USARTDIV的整数和小数寄存器中的值应设置成相同。 = 这里的fck是给外设的时钟(PCLK1用于USART2、 3、 4、 5, PCLK2用于USART1)USARTDIV是一个无符号的定点数。... -
串口波特率的理解
2020-08-14 14:17:32一、基础知识 1.1 bit与byte bit就是位,也叫比特位,是计算机中最小的单位; byte是字节,也就是B;...1.2 波特率概念 1)比特率:9600bps ,其表示每秒传输9600bit,也就是相当于每一秒中分成了9600等 -
串口波特率计算中使用四舍五入算法提高精度
2020-08-04 16:56:21异步通信SCI/UART大概是我们最最最常用的外设了吧(无以言表,只能用连续三个最来表示了),呵呵,目前绝大数的应用都离不开串口,串口配置...本篇博客的主要内容是想聊一聊串口初始化时波特率的计算问题,下面走起~ -
串口波特率等概念
2018-10-24 09:03:18篇一 : 串口波特率等概念 1:比特率:9600bps 就是每秒中传输9600bit,也就是相当于每一秒中划分成了9600等份。 如此,那么每1bit的时间就是1/9600秒=104.16666666666666666666666666667us。约0.1ms。既然是9600... -
串口波特率转换的实现
2020-10-19 08:45:53串口波特率转换的实现武汉波仕电子有限公司孙汉华027-51518044串口通信,就是RS-232/RS-485通信,要求通信的双方波特率等通信格式一样才可以通信成功。 -
STM32 USB虚拟串口波特率问题(含源码)
2021-01-31 19:55:52之前的文章中介绍过STM32的USB接口虚拟串口的功能。...1.电脑上设置的串口波特率不影响USB接口传输的速率。 2.怎样获取电脑上串口助手设置的波特率,以设置USART1使其波特率与串口助手一致。 波特率设置 其实ST -
MSP430串口波特率配置工具(原创)
2012-03-15 10:55:54MSP430串口波特率配置工具(原创)。方便的为msp430系列单片机配置串口波特率。 -
串口波特率设置和计算
2011-08-24 14:37:23其中,方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率决定。 串行口的四种工作方式对应着三种波特率。由于输人的移位时钟的来源不同,所以,各种方式的波特率计算公式也不同 -
串口波特率计算详解
2019-01-10 15:16:07STM32下波特率计算详解 波特率的计算 STM32下的波特率和... STM32串口波特率通过USART_BRR进行设置,STM32的波特率寄存器支持分数设置,以提高精确度。USART_BRR的前4位用于表示小数,后12位用于表示... -
linux 串口波特率的修改与sdma的设置
2020-08-26 14:28:25最近这几天准备用串口实现DMA的传输数据,刚开始研究三天DMA,结果是一脸懵逼,无奈之下,只能跑去研究串口,结果发现Linux系统串口和DMA是真的难(小白,而且没人一起...二、串口波特率设置与SDMA传输 三、测试 ...