串口

【verilog】verilog实现串口传输UART

白昼怎懂夜的黑 提交于 2020-02-04 07:18:50
1.接收模块 代码: //****************uart receive module******************// //********************************************************// `define SIM module uart_rx#( parameter DATAWIDTH = 8, parameter BAUD_CNT_WIDTH = 12, parameter BIT_CNT_WIDTH = 4 ) ( input CLK, input RSTn, input rs232_rx,//input data output reg [ DATAWIDTH - 1 : 0 ] rx_data,//receive data output reg po_flag //finish sig ); `ifndef SIM localparam BAUD_END = 5207;//simulate time too long,change to 56(560) `else localparam BAUD_END = 56; `endif localparam BAUD_M = BAUD_END / 2 - 1; localparam BIT_END = 8; reg rx_r1; reg rx_r2; reg rx

路由器硬件的提取

笑着哭i 提交于 2020-02-04 06:36:38
1、硬件基础知识 1.1、路由器FLASH   FLASH也叫闪存,是路由器中常用的一种内存类型。它是可读可写的存储器,在系统重新启动或关机之后仍能保存数据。FLASH中存放着当前正在使用的路由器操作系统等信息。   路由器的FLASH就像计算机的硬盘。我们的硬盘通常会被格式化成多个分区。同样的原理,FLASH也会被格式化为多个分区。通常情况下,FLASH分为4个区块,其作用如下:    bootloader :主要功能时对硬件环境进行初始化、更新固件及认识操作系统的文件格式并将内核加载到内存中去执行。    Kernel :操作系统的内核。    Root Filesystem :操作系统的根文件系统,如squashfs、rootfs等。    NVRAM :作用是保存路由器中的配置文件。路由器在启动之后会从NVRAM中读取配置文件,对路由器进行设置。用户修改路由器设置后,系统会将修改后的参数写回NVRAM中。   路由器的FLASH中存储的数据对于我们进行路由器安全研究具有十分重要的意义。我们可以读取NVRAM中的配置信息,以了解当前路由器中的敏感信息,还可以从FLASH中提取固件。 1.2、硬件提取数据的思路   通过接触硬件进行数据提取的方法很多,通常情况可以考虑以下三种方案:   1、通过路由器主板上的JTAG接口提取FLASH、NVRAM等

linux 串口编程记录(一)串口参数设置

时间秒杀一切 提交于 2020-02-03 03:45:52
一些常用串口属性的设置方法。 设置流控制 termios_new.c_cflag &= ~CRTSCTS; //不使用流控制 termios_new.c_cflag |= CRTSCTS; //使用硬件流控制 termios_new.c_iflag |= IXON|IXOFF|IXANY; //使用软件流控制 屏蔽字符大小位 termios_new.c_cflag &= ~CSIZE; 设置数据位大小 termios_new.c_cflag |= CS8; //使用8位数据位 termios_new.c_cflag |= CS7; //使用7位数据位 termios_new.c_cflag |= CS6; //使用6位数据位 termios_new.c_cflag |= CS5; //使用5位数据位 设置奇偶校验方式 termios_new.c_cflag &= ~PARENB; //无奇偶校验 termios_new.c_cflag |= PARENB; //奇校验 termios_new.c_cflag &= ~PARODD; termios_new.c_cflag |= PARENB; //偶校验 termios_new.c_cflag &= ~PARODD; 停止位 termios_new.c_cflag |= CSTOPB; //2位停止位 termios_new.c

田小花语音机器人(六)基于Python的通过Baidu API语音控制stm32单片机灯光系统实现

心已入冬 提交于 2020-02-02 05:43:38
此工程所有代码全都上传到CSDN了。 系统功能和特点概述: 硬件: 1、在电脑上运行语音识别,电脑系统为Ubuntu19.0、使用的语音是python3.7; 2、单片机使用stm32f103rct6,板子是原子的mini开发板; 软件: 3、主要使用了百度的语音识别的API接口、线程、串口通讯; 4、实现过程只使用到了基础层次的模块和比较基础的方法,容易看懂,方便以后做更全面的升级开发; 5、使用pycham开发,后期改动在终端上可以直接运行; 6、单片机使用codemx进行配置,配置好了以后只做了很少的改动,实现了串口通信点灯的功能,具体代码和配置参考我之前的博客里: 田小花语音机器人(二)使用串口实现和单片机数据互传,使用 python的seria0l模块实现基本的串口数据传输功能 ……………………………………………………………………………… 运行过程描述(没有录视频就简单描述一下吧^^): 运行后电脑控制单片机开发板上面的灯光流水灯闪动,然后进入语音识别,电脑会播放叮的一声,开始录音。对着电脑说出“开灯”,识别成功的话,电脑会播放语音“好的,正在为您开灯”。单片机灯光会全部打开。如果没有识别到“开灯”则会播放会播放“我没听清楚”。过一秒钟后再次播放叮的一声,进入关灯语音识别,过程同开灯。程序结束。语音识别运行过程中

UART串口的H4协议和H5协议

∥☆過路亽.° 提交于 2020-02-02 03:08:04
链接 https://www.cnblogs.com/-glb/p/11617662.html 于3线串口和5线串口,它们之间有什么差别呢? 对于3线串口,它只有三条线:TxD、RxD、GND。5线串口比三线串口多了两条线:CTS、RTS,用来控制流量。 使用三线串口和无线串口传输同一个数据时,它们使用的协议不一样。 假设图中红色的部分就是要发送的数据,当使用三线串口时可能给它加上头部、尾部后再发送给硬件,当使用五线串口时可能将数据直接发给硬件。 从这个地方可以产出,无论是三线串口还是五线串口,它们的底层硬件操作都是一样的。因此在硬件的这一层,又抽象出了一个结构体:uart_driver。使用该结构体来操作硬件。 H5协议只是将数据加上各种头部和各种尾部,H4协议也只是对数据进行了某种处理。 来源: CSDN 作者: 半片饼干 链接: https://blog.csdn.net/lwx62/article/details/104132442

MFC实现串口助手

☆樱花仙子☆ 提交于 2020-02-01 03:00:44
打开串口 void CMXC1730Dlg :: OnBnClickedButton1 ( ) //打开串口 { // TODO: 在此添加控件通知处理程序代码 CString temp ; m_OpenCloseCtrl . GetWindowText ( temp ) ; UpdateData ( true ) ; if ( temp == _T ( "关闭串口" ) ) { KillTimer ( 0 ) ; u2clas . ClosePort ( ) ; m_OpenCloseCtrl . SetWindowText ( _T ( "打开串口" ) ) ; m_PortNum . EnableWindow ( TRUE ) ; m_Baud . EnableWindow ( TRUE ) ; m_DataBit . EnableWindow ( TRUE ) ; m_Parity . EnableWindow ( TRUE ) ; m_StopData . EnableWindow ( TRUE ) ; UpdateData ( false ) ; } else { if ( m_PortNum . GetCount ( ) ) //有端口号 { int SelPortNO , SelBaudRate , SelDataBits , SelStopBits ; char

S3C2440-裸机篇-06 | UART数据发送和接收实验(扫描模式)

烈酒焚心 提交于 2020-01-31 08:37:26
关于RS-232C串口总线通信标准请参见我的另一个系列专题文章: 【嵌入式系统通信协议②】EIA RS-232C串口总线标准 实验 —— UART数据收发实验 1. 看原理图确定UART硬件如何连接 由原理图可以看出,JZ2440开发板上将三个串口全部引出,其中 UART0设置了板载的USB转串口电路 ,只需连接板上的USB口就可以,所以接下来我们使用UART0进行数据收发实验。 2. 看芯片手册设置引脚复用功能(GPHCON)、开启片内上拉(GPHUP) 由原理图可以看出,UART0的引脚是: GPH2 :TXD0 GPH3 :RXD0 这两个引脚都是普通的GPIO口,所以需要设置引脚复用功能,作为串口UART0的引脚: 在【 【嵌入式系统通信协议②】EIA RS-232C串口总线标准 】一文中讲解通信协议的时候讲过,串口的两根信号线在空闲的时候需要保持高电平,所以要开启这两个引脚的片内上拉电阻: 3. 看芯片手册设置串口 3.1.设置串口数据帧格式(ULCONn) 3.2.设置串口(UCONn) 3.2.1.设置串口波特率产生器的时钟源([11:10]) 之前在【 【S3C2440⑤】S3C2440时钟体系 】中进行实验设置了时钟 PCLK=50Mhz ,所以在此基础上选择 PCLK 作为串口UART0的波特率发生器的时钟来源: 3.2.2.设置发送/接收数据模式([3:0])

mscomm32.ocx(串口控制控件) 支持WIN7/WIN10

人盡茶涼 提交于 2020-01-30 15:55:11
VB串口开发必备控件 下载这个控件,然后把它拷贝到到C:\Windows\system32文件夹下, win7 64位,复制到C:\Windows\sysWOW64文件夹下, 然后打开cmd, 写入代码 regsvr32 C:\Windows\system32\MSComm32.ocx 按enter会提示你注册成功 http://traffic189.com/f-18.html 来源: CSDN 作者: aeaxea43 链接: https://blog.csdn.net/aeaxea43/article/details/104114375

Qt实践录:串口调试助手

六月ゝ 毕业季﹏ 提交于 2020-01-30 03:54:53
由于项目需要使用到串口调试及测试,为了练手,使用 Qt 编写一个串口调试助手。本文按开发的过程进行简单介绍,同时也涉及部分用到的模块代码。详细代码参考源码仓库。 工具特性 具体功能 具备串口收发功能。 串口参数设置。默认115200,N,8,1 接收区清空,接收区十六进制显示,接收区时间戳。 发送区清空,十六进制发送,自动追加 \r\n ,定时发送。 收发计数显示及清零。 串口设备自动检测。运行前串口就绪则自动打开。运行中串口插入不会自动打开。运行过程中拔出设备则自动关闭串口。 已知 Bug 接收区时间戳显示不完善。 串口发送大量乱码时,程序会崩溃。乱码可能是真的乱码,也可能是波特率错误设置。 Qt 相关知识 MainWindow设计。 Qt串口类。 常用控件:按钮、复选框、文本编辑框、控件贴图。应用程序logo。 Qt 检测设备热插拔(Windows)。 开发过程 工程相关 Qt 使用的串口类为 QSerialPort ,需要在工程文件中添加对应的库,如下: QT += core gui serialport logo图标,注意是 ico 格式: RC_ICONS = images/logo.ico 图片资源文件: RESOURCES += \ images.qrc USB 设备检测依赖的库: win32: LIBS += -lSetupAPI -luser32 信号与槽 在