串口

SecureCRT下的串口不能输入

喜你入骨 提交于 2019-12-30 14:58:36
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> SecureCRT下的串口不能输入 用secureCRT建了一个串口COM1后,连接上开发板后,可以正确接受和显示串口的输出,但是按键输入无效。 解决方法: Session Options -> Connection -> Serial -> Flow Control,将原先默认选中的 RTS/CTS取消掉,再重新connect开发板,再次连上后,此时就可以从键盘输入了。 网上解析: 【RS232的三种流控制模式】 DTR/DSR :硬件上要有对应接口,软件上实现对应协议,才能实现此流控制。具体实现起来,一般好像是和RTS/CTS一直搭配使用。 RTS/CTS :硬件上要有对应接口,软件上实现对应协议,才能实现此流控制。一般常见的也就是这种。但是很多开发板用secureCRT连接开发板的时候,往往都是在Uboot阶段,那时候还没有实现对应的RTS/CTS的流控制,所以此处需要取消此选择,否则,secureCRT就会去一直检测对应的RTS(Request To Send)pin脚,发现一直是无效,所以就一直没有接受到数据,就“卡”在那了。同样,你要输入数据,就是secureCRT要发送数据,所以其先发了个RTS给开发板,然后就一直检测自己的CTS是否有效,直到自己的CTS有效后,才能发送数据

ESP8266控制外接LED

你离开我真会死。 提交于 2019-12-30 08:42:54
一、环境:Arduino 1.8.5+ESP8266 二、设置:   开发板:Generic Esp8266 Module   端口:COM4 三、接线: 1. ESP8266插USB串口板 2.LED接 GP102与GND(串口板上直接连线) 四、代码 1 int ledPin = 2; 2 void setup() { 3 pinMode(ledPin, OUTPUT); 4 } 5 void loop() { 6 //开灯 7 digitalWrite(ledPin, LOW); 8 delay(1000); 9 //关灯 10 digitalWrite(ledPin, HIGH); 11 delay(2000); 12 } 来源: https://www.cnblogs.com/mqx365/p/9929827.html

ESP8266 01S 串口编程

為{幸葍}努か 提交于 2019-12-30 04:54:36
文章目录 学习记录 系统接口 代码 效果 代码2 效果2 学习记录 ESP8266 01S 串口编程 系统接口 注意加入头文件。 代码 在user_init()中加入代码 user_init(void) { os_printf("\r\n---------------\r\n"); os_printf("SDK version: %s \n", system_get_sdk_version()); //串口打印SDK版本 os_printf("\r\n---------------\r\n"); } 效果 代码2 user_init(void) { uart_init(9600, 9600); os_printf("\r\n---------------\r\n"); os_printf("SDK version: %s \n", system_get_sdk_version()); //串口打印SDK版本 uart0_sendStr("\r\n HELLO WORLD \r\n"); os_printf("\r\n---------------\r\n"); } 效果2 由于前半段使用74800(76800)传输,使用9600接收为乱码。改变串口波特率为9600后,接收正常。 如果接收波特率设为74800(76800),前半段正常,后半段乱码。 来源: CSDN 作者:

C++实现Linux下串口的读写

做~自己de王妃 提交于 2019-12-29 18:27:18
作为一个嵌入式程序员,串口的读写已经见怪不怪了。嵌入式Linux的串口也应用广泛。百度一搜也有许多讲解这方面的知识,今天我只展示我Linux下用C++实现的一个串口类可以实现类似于单片机中断的机制。使用起来很方便 我只展示接口: /* * File: BSerialPort.h */ # ifndef BSERIALPORT_H # define BSERIALPORT_H class BSerialPort { public : friend class BSerialPortManger ; enum SerialType { Actual , Virtual , } ; BSerialPort ( ) ; BSerialPort ( const BSerialPort & orig ) ; BSerialPort ( char * filename , SerialType type = Actual ) ; BSerialPort ( const char * filename , SerialType type = Actual ) ; virtual ~ BSerialPort ( ) ; /* * 参数: 串口设备文件路径 * 功能:打开串口,默认设置串口设备参数:9600,N,1 * 返回值:成功 true ; 失败 false */ bool open (

单片机(5)

寵の児 提交于 2019-12-29 11:29:57
计算机通信   随着多微机系统的广泛应用和计算机网络技术的普及,计算机的通信功能愈来愈显得重要。计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。 通信有并行通信和串行通信两种方式。   在多微机系统以及现代测控系统中信息的交换多采用串行通信方式。   计算机通信是将计算机技术和通信技术的相结合,完成计算机与外部设备或计算机与计算机之间的信息交换 。可以分为两大类:并行通信与串行通信。   并行通信通常是将数据字节的各位用多条数据线同时进行传送 。      并行通信控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。   串行通信是将数据字节分成一位一位的形式在 一条传输线上逐个地传送。      串行通信的特点:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。 串行通信的基本概念   一、异步通信与同步通信     1、异步通信       异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。              异步通信是以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的,即字符之间不一定有“位间隔”的整数倍的关系

STM32 USB转串口驱动安装不成功出现黄色感叹号解决方法!

℡╲_俬逩灬. 提交于 2019-12-29 11:28:31
相信很多人在做USB转串口时出现过串口驱动安装不成功,出现黄色感叹号问题, 出现这种问题一般是驱动安装不成功造成的。    这里我就这个问题总结几个简单的方法。 方法1:    插上USB,利用驱动人生安装驱动。 方法2:    先插上USB,去到设备管理器,把驱动卸载,       然后再把USB拔掉,再插上,让电脑自动重新安装驱动,反复几次就可以了。 方法3:    有一种可能是STM32CubeMX分配的堆空间太小造成的,这里改变其大小即可 ,如下:       方法4:    还有一种原因是STM32F407的VBUS检测功能默认是开启,把该功能关闭即可 。    以上就是我遇到过几种USB转串口驱动安装不成功的原因以及解决方法啦,黄色感叹号不见了!    来源: https://www.cnblogs.com/xingboy/p/9547918.html

stm32实现iap远程固件更新

自古美人都是妖i 提交于 2019-12-29 11:25:51
前提 想来做iap升级了,应该不是什么新手。 下面的程序需要用到一些简单的功能 串口收发数据 开关总中断 虽然本文标题是实现远程固件更新,但是具体远程方案本文不做详细说明,重点在于介绍mcu接收到新的固件后怎么保存更新,以及更新失败回滚等。下面简单说明一下远程的事情。 stm32的通信方式有串口,spi,iic,以及sdio等。也就是说我们的固件可以通过这些方式传输到mcu,不过普遍常用的是串口或者用sdio(外接sd卡)这两种方式。个人觉得用sd卡来回copy也不怎么方便。简单点还是再加一个串口网络模块,然后把固件存到服务器,经由串口网络模块透传到mcu。比如用http协议把固件发送下来。远程下载就这么简单一说。接下来重点分析更新的事情。 固件生成 远程更新使用的固件和我们平时烧录程序用的固件格式有点区别,我们需要用二进制格式(.bin)文件。生成方式以mdk为例介绍一下,只需要添加一条命令行。 在mdk工程配置选项选择User,这个页面是让我们添加自定义命令行的,我们要添加的命令添加到第三个选项,即在编译完成后执行。下面是命令内容,需要注意的是 bin前面两个-,app1.bin就是生成的固件,名字可以自定义,**.axf是你工程实际的.axf文件,路径要正确。不知道你的axf在那在output页面查看。 fromelf.exe --bin -o ../app1.bin ./*

ESP8266无线串口模块介绍

寵の児 提交于 2019-12-29 11:25:33
ESP8266浅谈 ESP8266是一款串口转无线模块,内部有自带固件,操作简单。 一、ESP8266简介 ESP8266芯片是一款串口转无线模芯片,内部自带固件,用户操作简单,无需编写时序信号等。 ESP8266 系列模组是安信可(Ai-thinker)公司采用乐鑫ESP8266 芯片 开发的一系列wifi 模组模块 ESP8266 特性 : *802.11 b/g/n *内置低功耗32位CPU:可以兼作应用处理器 *内置10 bit高精度ADC *内置TCP/IP协议栈 *内置TR开关、balun、LNA、功率放大器和匹配网络 *内置PLL、稳压器和 电源 管理组件 *支持天线分集 *STBC、1x1 MIMO、2x1 MIMO *A-MPDU、A-MSDU的聚合和0.4 s的保护间隔 *WiFi @ 2.4 GHz,支持 WPA/WPA2 安全模式 *支持STA/AP/STA+AP工作模式 *支持Smart Config功能(包括Android和iOS设备) *SDIO 2.0、(H) SPI、UART、I2C、I2S、IR Remote Control、PWM、GPIO *深度睡眠保持电流为10 uA,关断电流小于5 uA *2 ms之内唤醒、连接并传递数据包 *802.11b模式下+20 dBm的输出功率 *待机状态消耗功率小于1.0 mW (DTIM3) *工作温度范围

C# 解决串口接收数据不完整

落爺英雄遲暮 提交于 2019-12-29 10:17:56
使 用缓存机制完成。首先通过定义一个成员变量List<byte> buffer = new List<byte> (4096);用来存放所有的数据,在接收函数里,通过buffer.AddRange()方法不断地将接收到的数据加入到buffer中,并同时对 buffer中的数据进行检验,如果达到一定的长度并且校验结果正确(校验方法在发送方和接收方一致),再进行处理。具体代码如下: 代码 private List<byte> buffer = new List<byte>(4096); private void sp_DataReceived(objectsender, EventArgs e) //sp是串口控件 { int n = sp.BytesToRead; byte[] buf = new byte[n]; sp.Read(buf, 0, n); //1.缓存数据 buffer.AddRange(buf); //2.完整性判断 while (buffer.Count >= 4) //至少包含帧头(2字节)、长度(1字节)、校验位(1字节);根据设计不同而不同 { //2.1 查找数据头 if (buffer[0] == 0x01) //传输数据有帧头,用于判断 { int len = buffer[2]; if (buffer.Count < len + 4) /

java读写串口数据

和自甴很熟 提交于 2019-12-29 10:17:37
本博文参考自https://www.cnblogs.com/Dreamer-1/p/5523046.html 没想到挺多人需要这个的,很高兴这篇文章能对大家有帮助,主要的工具类博文里已经有了,当然,要小工具源码的留言邮箱即可。 2019.09.05 最近接触到了串口及其读写,在此记录java进行串口读写的过程。 1.导入 支持java 串口通信的jar包: 在maven项目的pom.xml中添加RXTXcomm的依赖 或者 下载RXTXcomm.jar并导入到项目中。 支持Java串口通信操作的jar包,java.comm比较老,而且不支持64位系统,推荐使用Rxtx这个jar包(32位/64位均支持)。 下载地址: http://files.cnblogs.com/files/Dreamer-1/mfz-rxtx-2.2-20081207-win-x86.zip (32位) http://files.cnblogs.com/files/Dreamer-1/mfz-rxtx-2.2-20081207-win-x64.zip (64位) 注意:运行过程中抛出 java.lang.UnsatisfiedLinkError 错误或 gnu.io 下的类找不到时,将rxtx解压包中的 rxtxParallel.dll,rxtxSerial.dll 这两个文件复制到 C:\Windows