首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Linux基础(串口编程)

虽然以太网接口和USB接口也是以一个串行流进行数据传送的,但是串口连接通常特指那些与RS-232标准兼容的硬件或者调制解调器的接口。废话少讲,今天来解剖使用串口时的编程代码细节。...上面的代码是使用串口的第一步,来解释下都是啥意思。...来瞧瞧: 第21-22行,定义了一个用来配置串口属性的结构体: struct termios serial; bzero(&serial, sizeof(serial)); 第24行,将串口设置为raw...cfsetispeed(&serial, B9600); cfsetospeed(&serial, B9600); 第28-32行,设置串口控制属性(c_cflag),其中: serial.c_cflag...: tcsetattr(fd,TCSANOW,&serial); 当然,上面的 fd 就是系统中的某一个你想要设置的成上面那样的属性参数的串口,比如就拿粤嵌GEC210开发板来说,他有四个串口,其中第一个就已经被用于终端控制了

12.6K20

没有串口,如何打印单片机调试信息?

但是这样简单的功能有时候却不是那么好用,比如: 一款新拿到的芯片,没有串口驱动时如何打印log? 某些应用下对时序要求比较高,串口输出log占用时间太长怎么办?比如usb枚举。...某些bug正常运行时会出现,当打开串口log时又不再复现怎么办? 一些封装中没有串口,或者串口已经被用作其他用途,要如何输出log? 本文介绍单片机没有串口时,如何打印调试信息。...#endif 在需要打印log的地方直接调用DEBUG()即可,最终效果如下,从Memory窗口可以看到打印的log: 通过SWO输出log 通过打印log到SRAM的方式可以看到log,但是数据量多的时候可能来不及查看就被覆盖了...而下面要讨论的问题是,串口的速率较低,输出数据需要较长时间,严重影响系统运行。虽然可以通过先打印到SRAM再延时输出的办法来减轻影响,但是如果系统中断频繁,或者需要做耗时运算,则可能会丢失log。...并且不仅可以用串口,其他可以用DMA操作的接口(如SPI、USB)都可以使用这种方法来打印log。

1.1K10

没有串口,如何打印单片机调试信息?

但是这样简单的功能有时候却不是那么好用,比如: 一款新拿到的芯片,没有串口驱动时如何打印log? 某些应用下对时序要求比较高,串口输出log占用时间太长怎么办?比如usb枚举。...某些bug正常运行时会出现,当打开串口log时又不再复现怎么办? 一些封装中没有串口,或者串口已经被用作其他用途,要如何输出log? 本文介绍单片机没有串口时,如何打印调试信息。 1....而下面要讨论的问题是,串口的速率较低,输出数据需要较长时间,严重影响系统运行。虽然可以通过先打印到SRAM再延时输出的办法来减轻影响,但是如果系统中断频繁,或者需要做耗时运算,则可能会丢失log。...并且不仅可以用串口,其他可以用DMA操作的接口(如SPI、USB)都可以使用这种方法来打印log。 4....往期推荐 Linux CPU 上下文切换的故障排查 手把手教你写一个 Makefile 文件 一文读懂 | Linux共享内存原理 嵌入式必懂的 CAN 总线,真的讲到位了!!

1.2K20

Linux 查看本机串口方法

最近在了解嵌入式方面的知识,就随笔记录一下: 查看Linux本机串口: 1、查看串口是否可用    可以对串口发送数据比如对com1口,echo /dev/ttyS0 2、查看串口名称使用    ls...-l /dev/ttyS*   一般情况下串口的名称全部在dev下面,如果你没有外插串口卡的话默认是dev下的ttyS*,一般ttyS0对应com1,ttyS1对应com2,当然也不一定是必然的; 3、...查看串口驱动    cat/proc/tty/drivers/serial 4、查看串口设备    dmesg | grep ttyS* 5、查一下板子上的串口有没有设备    grep tty/proc.../dev下应该有一个USB串口:/dev/ttyUSB0. 当一个串行卡或数据卡被侦测到时,它会被指定成为第一个可用的串行设备。...PC上的串口一般是ttyS,板子上Linux串口一般叫做ttySAC; 串口使用: 如果需要查看这个串口设备输出: cat ttyUSB0 如果需要对这个设备输入: echo yaoxu > ttyUSB0

21K20

Linux 串口的基本用法

查看Linux本机串口: 1、查看串口是否可用 如果需要查看这个串口设备输出: cat ttyUSB0 如果需要对这个设备输入: echo yaoxu > ttyUSB0 常用的调试工具有: minicom...cutecom Linux系统可视化串口应用软件,使用上与Windows系统串口调试工具。 picocom 效果上类似 minicom 的精简版,设置比较简单,还可以有背景颜色。...PC上的串口一般是ttyS,板子上Linux串口一般叫做ttySAC; 串口权限问题 临时调试解决 在使用串口进行通信时,经常需要使用指令来赋予用户读写的权限 $ sudo chmod 777 /dev...查看linux所有用户 使用 /etc/passwd 文件 使用任何一个像 cat、more、less 等文件操作命令来打印 Linux 系统上创建的用户列表。...你可以使用 awk 或 cut 命令仅打印Linux 系统中所有用户的用户名列表。显示的结果是相同的。

9.7K41

嵌入式Linux串口编程

简介 嵌入式Linux串口编程与Linux系统下的编程没有什么区别,系统API都是一样的。...嵌入式设备中串口编程是很常用的,比如会对接一些传感器模块,这些模块大多是RS232或者RS485接口,对于软件层面上来说,RS232与RS48区别不大。...RS232与RS485在使用上的区别,RS232是全双工的,只能对接一个设备串口设备。RS485是半双工的总线协议,一般可以挂多个传感器设备,半双工的意思是同时只能有一个设备向串口发数据。...用到的API函数 函数 说明 open 打开设备,用于打开串口设备 fcntl 修改设备描述符属性参数 isatty 检测打开的描述符是否指向一个终端 tcgetattr 用来获取串口终端参数 cfmakeraw...将终端设置为原始模式,该模式下所有的输入数据以字节为单位被处理 tcflush 用于清空输入、输出缓冲区 tcsetattr 设置串口终端参数 read 读取数据 write 写数据 close 关闭串口设备

13K20

替代串口打印,嵌入式中另一种打印调试的方法

一、前言 在我们的嵌入式开发中,常常把printf重定向到MCU的串口外设,再配合上位机界面软件,通过打印调试信息的方式来调试我们的嵌入式软件。...此处,我们介绍另一种打印调试的方法——SEGGER 的RTT 。RTT全称是Real Time Transmit(实时传输),是Segger公司推出的,是配合J-link使用的一种调试手段。...可见,我们的MCU通过J-Link,凭借RTT就可往电脑打印调试信息,电脑端这边用的是J-LINK 的小软件 RTT Viewer (不能是别的软件哦)。...这样,我们就可以把MCU的串口资源释放出来了,特别对于一些串口资源不那么充足的MCU来说就可以省出一个串口去与其它外围芯片进行串口通讯。...三、最后 SEGGER_RTT基本上可以替换掉我们的串口打印调试,关于SEGGER_RTT还有其他可以学习的地方,比如输出颜色设置、多任务调度等,有需要的朋友可以自己进行学习使用,推荐资料: http:

1.1K21

Anycubic Vyper 3D打印串口屏改造开源项目之串口屏项目启动篇(一)

个人的串口屏开源项目规划主要分为三条线: MCU串口屏 PC端(电脑就是串口屏) Linux QT串口屏或者其它运行在Linux上的UI的串口屏 UI设计部分会使用网上开源的UI或者自己用PS重新设计...3、开源项目软件功能规划 前期功能规划如下: UI设计与功能实现 基本打印功能、GCode解析 喷头温度、热床温度曲线显示 3D打印串口终端调试功能 一些常见功能的添加,具体可参考Anycubic...长期功能规划如下: 通过腾讯物联网平台实现联网控制 物联网远程视频监控方案实现 通过物联网同时控制多台3D打印机进行打印 基于PC端、Linux上位机开发,与切片软件的结合实现模型的(2D、3D实时预览...Linux 采用了 GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。...这也就是为什么我们能用免费的各种linux,包括商业公司的linuxlinux上各种各样的由个人,组织,以及商业软件公司开发的免费软件了。

1.7K61

全志R18 Tina平台关闭所有串口打印的方法

全志R18 Tina平台关闭所有打印输出方法: 有些国外的产品安全认证,如亚马逊Alexa认证,认证机构会不停地点pcb上的点,看有没有东西输出,有的话就通过这些口想办法破解设备,所以安全认证会要求设备没有任何输出...,因此要把打印都关掉,以保证设备的安全。...关闭boot0,uboot等阶段打印 1.1 修改tina/target/allwinner/tulip-xxx/configs/sys_config.fex文件 将uart_para的配置全部注释掉...target/allwinner/tulip-xxx/configs/sys_config.fex文件 找到debug_mode,将其值修改为0 debug_mode = 0 关闭kernel阶段打印...修改tina/target/allwinner/tulip-xxx/configs/env-4.4.cfg文件 找到loglevel,默认为8,将其值修改为0 loglevel=0 这样串口就只有开机时有一行

9010
领券