串口

基于STM32之UART串口通信协议(一)详解

99封情书 提交于 2020-02-12 02:04:44
UART —— Universal Asynchronous Receiver/Transmitter —— 通用异步收发器。 一、UART简介 UART是异步串口通信协议, 工作原理是将传输数据的每个字符一位接一位地传输,它能将要传输的资料在串行通信与并行通信之间加以转换,能够灵活地与外部设备进行全双工数据交换。 USART是UART的升级版,其支持同步模式,用法与UART相同 二、概念辨析 ------------------------------------UART COM口 串口 USB口 RS - 232 TTL--------------------------------------------- UART,在硬件上表现为串口收发的逻辑电路,可被集成为独立地模块化芯片 COM口,串行通信端口,有时也称为串口,是一种连接器的结构,这里区别于USB的“通用串行总线”和硬盘的“SATA”,串口的接口标准规范和总线标准规范是 RS-232    常见的有两种物理标准,D型9针插头,和4针杜邦头, USB口:通用串行总线,和串口完全是两个概念。虽然也是串行方式通信,但由于USB的通信时序和信号电平都和串口完全不同,因此和串口没有任何关系。USB是高速的通信接口,用于PC连接各种外设,U盘、键鼠、移动硬盘、当然也包括“USB转串口”的模块。(USB转串口模块

STM32 hal库串口DMA模式收发定长数据

♀尐吖头ヾ 提交于 2020-02-12 00:19:32
//DMA接收定义为循环模式,只能接受定长数据 //串口DMA中断调用的回调函数和串口接收中断是同一个 uint8_t rxch [ 5 ] ; uint8_t trch [ ] = "transmit dma:\r\n" ; int main ( void ) { HAL_UART_Transmit_DMA ( & huart1 , trch , 15 ) ; HAL_UART_Receive_DMA ( & huart1 , rxch , 5 ) ; while ( 1 ) { } } //DMA接收完成回调函数和这是同一个 void HAL_UART_RxCpltCallback ( UART_HandleTypeDef * huart ) { if ( huart -> Instance == USART1 ) { printf ( "%s\r\n" , rxch ) ; HAL_UART_Transmit_DMA ( & huart1 , rxch , 5 ) ; } } //DMA传输完成回调函数和这是同一个 void HAL_UART_TxCpltCallback ( UART_HandleTypeDef * huart ) { uint8_t tx_str [ ] = "Data Transfer completed\r\n" ; HAL_UART_Transmit

关于51单片机字符串 EEPROM存储与读取的问题

瘦欲@ 提交于 2020-02-09 01:37:53
# 关于51单片机字符串 EEPROM存储与读取的问题 # 题目如下 <新手小白> 通过串口助手控制 LCD 显示屏,通过 LCD1602 显示并保存在 EEPROM 中,实现 数据的掉电保存(例 如:串口向单片机发送一串英文字符,该字符在 LCD 上显示出 来,若按下 k1 则实现数据的保存,按下 k2 实 现读取上次保存的数据,显示在 1602 上) 效果如下 #include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器 #include "i2c.h" #include <string.h> typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8; sbit LSA=P2^2; sbit LSB=P2^3; sbit LSC=P2^4; sbit k1=P3^1; sbit k2=P3^0; sbit k3=P3^2; //定义按键端口 sbit LCD1602_RS=P2^6; sbit LCD1602_RW=P2^5; sbit LCD1602_E=P2^7; u8 num=0;u8 i,flag; u8 table[16]="I received is: "; u8 table1[16]="My memory is: "; u8 table2[16]; u8 table3

Python串口异步通信

风格不统一 提交于 2020-02-08 17:57:34
Python串口异步通信(串口接收中断) 串口是计算机上一种非常通用的设备通信协议。pyserial模块封装了python对串口的访问,为多平台的使用提供了统一的接口。 安装库 Python要使用串口功能需要导入这两个库: pyserial (基本串口功能) pip3 install pyserial pyserial-asyncio (实现异步功能需要这个库) pip3 install pyserial - asyncio 获取串口名称 使用serial.tools.list_ports.comports()函数会返回一个ListPortInfo类型的列表 import serial import serial . tools . list_ports class serial_class : def get_port ( self ) : self . port_list = serial . tools . list_ports . comports ( ) return self . port_list serial_port = serial_class ( ) port = serial_port . get_port ( ) for i in range ( 0 , len ( port ) ) : print ( tuple ( [ port [ i ] .

迅为6818开发板介绍和组装

坚强是说给别人听的谎言 提交于 2020-02-07 12:03:00
核心板类型 : 板对板连接器方式(拆装方便,扩展性好),邮票孔方式(适合高震动场合) CPU:ARM Cortex-A53 八核 S5P6818处理器 1.4GHz 内存 :1GB DDR3(2GB可选); 存储:16GB EMMC 电源管理 :AXP228(官方推荐最佳匹配),支持动态调频,超低功耗 系统支持 :Android4.4/5.1.1/7.1系统、Linux3.4.39、QT2.2/4.7/5.7、Ubuntu12.04 引角扩展 :板对板连接器方式(四组连接器共320个PIN脚) 邮票孔方式(208个PIN脚) 连接器方式: 邮票孔方式: 开发板的组装 1 控制台(console)串口 使用串口线连接开发板的 CON3 到 PC 机的串口,如果 PC 或笔记本没有串口,就需要准 备一条 USB 转串口的设备。 iTOP-6818 开发板引出两个串口,其中 CON3 是作为系统的调试串口 2 屏幕的连接 从外观上来看,开发板有 2 个 HDMI 接口,其实只有一个可以接到 HDMI 显示器上。 外形较大的 HDMI-A 接口(上图中红色方框内的接口),只能连接迅为提供的 7 寸屏幕或 者 9.7 寸屏幕,里面有 5V(或者 3.3V)电源,绝对不能接到 HDMI 显示器上。使用迅为提供 的 HDMI 线是可以防呆的,不会接错,在用户弄清楚信号之前,不要擅自使用自己购买的

arduino详细介绍

删除回忆录丶 提交于 2020-02-07 11:24:47
一、Ardinuo基础1. 褐色为系统命令(int,void,setup),蓝色为命令功能的开关(OUTPUT),黑色为变量。三、经典历程:打印出hello worldvoid setup() {Serial.begin(9600);}void loop(){Serial.println(“Hello world”);delay(1000);}四、Arduino 的数字输出Arduino的数字1/O被分成两个部分,其中每个部分都包含有6个可用的IO管构,即管脚2到管脚7和管脚8到管脚13.除了管脚13上接了一个1K的电阻之外,其他各个管脚都直接连接到ATmega上。我们可以利用个6位的数字跑马灯,来对Arduino数字yO的输出功能进行验证,以下是相应的原理图: 电路中在每个I/O管脚.上加的那个1K电阻被称为限流电阻,由于发光极管在电路中没有等效电阻值,使用限流电阻可以使元件上通过的电流不至于过大,能够起到保护的作用。 该工程对应的代码为: int startPin= 2;int endPin = 7;int index= 0;void setupO{ for (inti= startPin;i<= endPin;i++){ pinMode(i, OUTPUT); void loop(X{ for (inti= startPin;i<= endPin;i++){

NB-IOT开发|nbiot开发教程《一》AT指令类模组驱动解析

怎甘沉沦 提交于 2020-02-07 06:47:43
嵌入式开发中我们要时刻保持代码的高效与整洁 一、前言 嵌入式开发中我们要时刻保持代码的高效与整洁 。NBIOT的出现带动了物联网行业的火爆,物联网行业似乎总是离不开NBIOT。但是,我将NBIOT归为AT指令模组一类,这一类模组没有什么高深之处,也没有深度可言。但是想要很好的使用AT指令模组却是一件不简单的事情。想要很灵活的使用AT指令的模组需要用到 状态机。 AT指令类模组包括:nb-iot模组,gprs模组,wifi模组,LoRa串口透传模组等等,设计很多,应用广泛。 二、AT指令类模组总结 AT指令类模组的使用步骤可以分为:模组初始化和模组收发数据。我们翻开模组的手册可以发现,模组的初始化就是一个状态到另一个状态之间的切换, 每一时刻该对象必须处于且只能处于其中一种状态中。 三、状态机原理 状态机的定义网上有很多,我主要说一下状态机的工作原理。 状态机组成:状态(state),事件(event)和动作(action); 四、AT指令模组状态机工作原理 前面说了状态机组成:状态(state),事件(event)和动作(action); AT指令模组状态机原理: 状态:1.发送AT确认模组是否正常;2.配置模组参数;3.发送数据;(暂定三个状态) 动作:1.发送AT确认模组是否正常->通过串口发送AT\r\n,模组正常会返回OK,模组不正常返回非OK数据或者不返回。 2

GSM之AT操作命令

纵然是瞬间 提交于 2020-02-06 08:12:43
因工作接触到GSM模块,所以收集整理了一下关于操作GSM模块的AT命令的资料: 1.AT的历史与应用 1.1 AT的历史 AT命令集是由拨号调制解调器(MODEM)的发明者贺氏公司(Hayes)为了控制Modem发明的控制协议.AT是Attention的缩写, 协议本身采用文本.每个命令均以AT打头,因此得名.这段历史参见 http://en.wikipedia.org/wiki/Hayes_command_set 随着网络升级为宽带,速度很低拨号MODEM基本已经退出一般使用市场.我最近一次看见使用拨号MODEM的地方是深圳市的 网络报税系统.必要拨号到税务局的服务器才能使用。也就在这个很小的市场才留到一点空间。其余一般都用上ADSL的 modem了。 贺氏公司象很多发明伟大的产品的公司一样,在发明了划时代的MODEM产品后,没有进一步升级技术。现在已经于1999 年破产消失了,类似的例子有发明浏览器的Netscape,第一个成为网络操作系统的Novell公司,现在都已经边缘化了。 关于Hayes的破产,还能找到一个旧闻http://news.sina.com.cn/richtalk/news/tech/9901/010704.html 但是有意思,http://www.hayes.com仍在销售产品,难到又活过来了? 但是AT命令保留下来了。主要的移动电话生产厂商诺基亚、爱立信

esp8266通过串口AT指令连接onenet平台

三世轮回 提交于 2020-02-06 02:30:16
1)配置WIFI模块; 模块配置和用RestFul API接入OneNet相同,依次发送如下几个命令到WIFI模块: AT+CWMODE=3 //设置WIFI应用模式 AT+RST //重置WIFI模块 AT+CIFSR//查询本地IP AT+CWJAP="your ssid","password" //连接无线路由器 注意:这些配置完成后,若模块重新上电,可直接进入第二步,与服务器建立TCP连接。 2)和OneNet服务器建立TCP连接,依次发送命令: AT+CIPSTART="TCP","183.230.40.33",80 //和服务器建立TCP连接 AT+CIPMODE=1 //进入透明传输模式 AT+CIPSEND //开始传输 命令执行结果如下图所示: 到此,我们可以发送前面准备好的数据了,发送HTTP数据报为: POST /devices/131658/datapoints HTTP/1.1 api-key: mgDiVsQ7E8bPUwfBDtTy4K8yMtMA Host:api.heclouds.com Content-Length:63 {"datastreams":[{"id":"sys_time","datapoints": [{"value":50}]}]} 返回结果如下图: 该返回结果说明,本次上传数据成功,数据上传成功后

STM32串口下载程序

假如想象 提交于 2020-02-05 21:40:33
STM32 串口下载程序 引言: 如果我们用下载器下载程序很快,很方便,但是需要购买下载器,很破费。为此我们用串口 下载程序,省去了购买下载器的麻烦。 下面介绍用串口下载程序的方法: 所需工具: 串口转 TTL 模块一个,STM32 单片机一个,杜邦线 4 根,mcuisp 软件。 单片机最小系统如图所示: 自制串口下载电路:(自制开发板的时候使用,本文档不使用) 一键下载电路如图所示: 要想了解串口下载电路的工作过程,首先要了解 STM32 的几种启动模式。 STM32 的几种启动模式如下表所示: BOOT1 BOOT0 启动模式 说明 X 0 用户闪存存储器 Flash启动,运行 0 1 系统存储器 串口下载 1 1 SRAM启动 SRAM启动,调试 要想下载程序,必须让 BOOT1=0,BOOT0=1. 运行程序,必须 BOOT0=0; 5.串口和 STM32 的连线: 下面介绍单片机最小系统和串口连接的引脚图: 单片机 串口 A9 RX A10 TX GND GND VCC 3.3v 串口连接图: 芯片连接图: 6.mcuisp 下载软件的使用: 步骤详图: 打开 mcuisp,先执行 1,2,3 步。点击搜索串口,将自动找到电路板串口,在 bps 中选择 波特率为 256000,左下角设置:DTR 的低电平复位,RTS 高电平进 BootLoader。 设置完 1,2,3