串口

详解linux下的串口通讯开发

最后都变了- 提交于 2020-03-02 06:50:55
串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是RS-232-C接口(又称EIA RS-232-C)它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。串口 通讯指的是计算机依次以位(bit)为单位来传送数据,串行通讯使用的范围很广,在嵌入式系统开发过程中串口通讯也经常用到通讯方式之一。 Linux对所有设备的访问是通过设备文件来进行的,串口也是这样,为了访问串口,只需打开其设备文件即可操作串口设备。在linux系统下面,每 一个串口设备都有设备文件与其关联,设备文件位于系统的/dev目录下面。如linux下的/ttyS0,/ttyS1分别表示的是串口1和串口2。下面 来详细介绍linux下是如何使用串口的: 1. 串口操作需要用到的头文件 #include /*标准输入输出定义*/ #include /*标准函数库定义*/ #include /*Unix 标准函数定义*/ #include #include #include /*文件控制定义*/ #include /*POSIX 终端控制定义*/ #include /*错误号定义*/ #include /*字符串功能函数*/ 2. 串口通讯波特率设置 波特率的设置定义在,其包含在头文件里。 常用的波特率常数如下: B0----

289_S32K144串口的查询接收模式

余生长醉 提交于 2020-03-01 08:22:46
完整的S32K144的学习汇总如下: https://github.com/GreyZhang/g_s32k144 继续S32K144的学习,还是继续串口的学习。因为我觉得前面实现的这种阻塞收发模式虽然稳定,但是还有改进空间。尤其是DMA的使用,在这种模式下似乎是不奏效的。其实,发送功能倒还好一点,接收功能,我觉得还是得实现查询的方式。 查看接口信息,发现其实这个似乎也是已经实现了的一个功能。我找到了下面的这个接口: 使用这个做一下实现,测试代码修改如下: 做一下简单的测试。 看得出,这个接收的可靠性还是很高的。以上的测试是基于中断的传输模式实现的,切换成DMA其实也有同样的效果。切换DMA的配置之后,测试结果如下: 完整的S32K144的学习汇总如下: https://github.com/GreyZhang/g_s32k144 来源: CSDN 作者: grey_csdn 链接: https://blog.csdn.net/grey_csdn/article/details/104580702

VS2010下MFC的串口编程

风格不统一 提交于 2020-02-29 17:56:19
串口通信简介   一般来说,计算机都有一个或多个串行端口,这些串口提供了外部设备与PC进行数据传输和通信的通道,在CPU和外设之间充当解释器的角色。当字符数据从CPU发送给外设时,这些字符数据将被转换成串行比特流数据;当接收数据时,比特流数据被转换为字符数据传递给CPU,再进一步说,在操作系统方面,Windows用通信驱动程序(COMM.DRV)调用API函数发送和接收数据;当用通信控件或声明调用API函数时,它们由COMM.DRV解释并传递给设备驱动程序。作为一个程序员,要编写通信程序,只需知道通信控件提供的Windows API通信函数的接口即可,换句话说,只需设定和监视通信控件的属性和事件即可。   串口通信方法一般有以下几种: 利用Windows API通信函数; 利用Visual C++的标准通信函数_inp、_inpw、_inpd、_outp、_outpw、_outpd等直接对串口进行操作; 通过微软的串口通信控件MSComm,它是一种ActiveX控件; 利用第3方编写的通信类,比如MuMega Technologies公司提供的CSerail类;   我在项目开发过程中用的是第三种方法——通过MSComm控件操作串口,下面是我使用此控件的笔记。 MSComm控件简介   MSComm 是 Microsoft

VS2008基于对话框的MFC上位机串口通信(C++实现)简单例程

眉间皱痕 提交于 2020-02-29 17:54:14
首先,在 vs2008 环境下创建 MFC 运用程序 设置项目名称为 ComTest (这个地方随意命名,根据个人习惯),点击确定后, 点击下一步 出现如下界面 选择“基于对话框”模式然后直接点击完成即可(其他选项按默认方式),点击完成后出现如下界面 解决资源管理器中自动给你生成好代码目录(可点击菜单栏“视图”选项打开解决方案资源管理器),如下图所示 我们再次回到对话框编辑窗口,删除自动生产的控件(静态文本控件、确定和取消按钮控件),并在工具箱里添加两个button按钮和编辑框,之后的界面如下图所示: 然后把最重要的串口通信控件加入到工具箱中,因为默认的工具箱是不带 MS 串口通信控件的。添加方法如下:在工具箱界面点击鼠标右键出现如下界面: 然后点击选择项出现如下界面,然后选择“COM 组件” 找到并选中该项 最后点击确定键,就成功添加 MS 串口通讯控件了,工具箱中就会出现串口控件图标了 我们吧串口控件添加到对话框里,位置随意,运行的时候是看不见的,所以最终界面是这样子的 下面开始添加变量,首先 为 IDC_MSCOMM1 添加控制变量: m_ctrlComm ,在串口通信图标上右键点击选择添加变量,如图: 完成就可以了,控件ID和类别是可以选的,下面为按钮和编辑框添加变量时选不同的就行了。 两个编辑框,一个用于接收显示数据 ID设置 为 IDC_EDIT_RXDATA

linux UART串口驱动开发文档

*爱你&永不变心* 提交于 2020-02-29 09:39:11
内容简介: 介绍了Linux下的串口驱动的设计层次及接口, 并指出串口与TTY终端之间的关联层次(串口可作TTY终端使用), 以及Linux下的中断处理机制/中断共享机制, 还有串口缓冲机制当中涉及的软中断机制; 其中有关w83697/w83977 IC方面的知识, 具体参考相关手册, 对串口的配置寄存器有详细介绍, 本文不再进行说明. 目录索引: 一. Linux的串口接口及层次. 二. Linux的中断机制及中断共享机制. 三. Linux的软中断机制. 四. TTY与串口的具体关联. 一. Linux的串口接口及层次 . 串口是使用已经非常广的设备了, 因此在linux下面的支持已经很完善了, 具有统一的编程接口, 驱动开发者所要完整的工作就是针对不同的串口IC来做完成相应的配置宏, 这此配置宏包括读与写, 中断打开与关闭(如传送与接收中断), 接收状态处理, 有FIFO时还要处理FIFO的状态. 如下我们就首先切入这一部分, 具体了解一下与硬件串口IC相关的部分在驱动中的处理, 这一部分可以说是串口驱动中的最基础部分, 直接与硬件打交道, 完成最底层具体的串口数据传输. 1. 串口硬件资源的处理 . W83697及W83977在ep93xx板子上的映射的硬件物理空间如下: W83697: 0x20000000起1K空间. W83977: 0x30000000起1K空间.

linux -- 串口调试总结

浪尽此生 提交于 2020-02-29 01:44:19
linux 串口输出调试 在某些情况下,需要同时对两台或多台Linux主机进行管理和操作。如果手头缺少足够多的键盘和显示器,那么通过一台机器的串口对其余主机进行控制不失为一种快捷、有效的方法。 下面就以两台主机为例,简单介绍一下配置方法。假设这两台主机分别为A和B,它们都运行Red Hat 9.0。 A 主机配置 A主机要选择一个合适的串口通信工具,本文中使用Linux自带的Minicom。 以root身份登录,运行如下命令:      # minicom -s    屏幕上出现Minicom的主配置选单,移动键盘的方向键,选择“Serial Port Setup”选单项,会出现如下配置项:      A - Serial Device : /dev/ttyS0   B - Lockfile Location : /var/lock   C - Callin Program :   D - Callout Program :   E - Bps/Par/Bits : 9600 8N1   F - Hardware Flow Control : No   G - Software Flow Control : No   Change which setting?    按照需要配置如下参数: ◆ 串口设备 /dev/ttyS0; ◆ 波特率 9600; ◆ 帧格式 8N1

Linux驱动开发-串口驱动

倾然丶 夕夏残阳落幕 提交于 2020-02-28 21:08:49
参考资料: 《LINUX设备驱动程序第三版》 linux-5.4.9 0.前言 在今天终于离职了,办完了所有的手续,感觉一身轻松,在上一家公司,作为一名程序员,已经在偏离写代码开发的歪门邪道上越走越远了,现在疫情比较严重,非常时间,大家还是要少出门,注意安全,所以就趁这段时间总结一下之前工作中的问题和经验吧。 1.tty与串口驱动 tty设备的名称是从过去的电传打字机缩写而来,最初是指连接到Unix系统上的物理或者虚拟终端。随着时间的推移,当通过串行口能够建立起终端连接后,这个名字也用来指任何的串口设备。 有三种类型的tty'驱动程序:控制台、串口和pty。控制台和pty驱动程序已经被编写好饿了,而且可能也不必为这两类tty驱动程序编写其他的驱动程序。这使得任何使用tty核心与用户和系统交互的新驱动程序都可被看成是串口驱动程序。 2.关于tty Linux tty驱动程序的核心紧挨着标准字符设备驱动层之下,并提供了一系列的功能,作为接口被终端类型设备使用。内核负责控制通过tty设备的数据流,并且格式化这些数据。这使得tty驱动程序把重点放在处理流向或者流出硬件的数据上,而不必重点考虑使用常规方法与用户空间的交互。为了控制数据流,有许多不同的线路规程(line discipline)可虚拟地“插入”任何的tty设备上,这由不同的tty线路规程驱动程序实现。

marlin2.0应用到STM32实践(续)

99封情书 提交于 2020-02-28 18:47:36
前言 在上篇内容中主要介绍了marlin2.0安装到已有开发板的实例。这篇内容将通过marlin2.0安装到BLACK_STM32F407VE开发板的实践介绍如何为新定制的开发板烧入固件并详细介绍前期的处理过程,希望能为那些想深入固件研究苦于不会编译安装和想绘制3D打印机开发板又不知如何烧录固件的marlin爱好者一些帮助。 BLACK_STM32F407VE开发板的硬件开源资料链接: https://github.com/mcauser/BLACK_F407VE 构建过程 类似于上篇文章的内容,首先将配置内容修改为适合于BLACK_STM32F407VE的开发板。 将 platformio.ini 文件中的 [plarformio] 下的 default_envs 修改为 default_envs = STM32F407VE_black 将 configuration.h 文件中的 MOTHERBOARD 修改为: #ifndef MOTHERBOARD #define MOTHERBOARD BOARD_BLACK_STM32F407VE #endif 将 configuration.h 文件中的串口1 SERIAL_PORT 修改为 -1 或 1 # define SERIAL_PORT -1 //USB虚拟串口 SERIAL_PORT 定义为 -1

“/etc/X11/xorg.conf”中鼠标部分的配置详解

主宰稳场 提交于 2020-02-28 07:32:30
先贴一个配置样例: Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ExplorerPS/2" Option "Emulate3Buttons" "false" Option "Buttons" "7" Option "ZAxisMapping" "4 5" Option "ButtonMapping" "1 2 3 6 7" Option "Resolution" "100" Option "EmulateWheel" "on" Option "EmulateWheelButton" "2" EndSection 说明如下: Section "InputDevice"......EndSection 说明这是对输入设备的配置,配置文件在Section和EndSection之间。注:保持默认即可。 Identifier "Configured Mouse" 输入设备类型:鼠标。注:保持默认即可。 Driver "mouse" 设备驱动:mouse。注:保持默认即可。 Option "CorePointer" 将当前鼠标作为首选设备。注:保持默认即可