串口

MDK stm32 AD&串口 软件仿真

让人想犯罪 __ 提交于 2020-03-12 13:47:54
Mdk软件调试,选项 选择use simulator 即软件仿真 下面红框中 一定按照上述文字一字不差填入,右下的两个一定要根据芯片填写妥当。 串口数据思路 借助串口工具将两个串口相连接 使用command将,mdk软件仿真串口输出在电脑串口上 虚拟串口工具====vspd,安装方法附带 https://blog.csdn.net/qq_34202873/article/details/88391265 串口调试助手 附带(自选) step1,利用虚拟串口将两个串口相连接,可以利用串口调试工具进行测试是否将两个串口连接 step2 开始仿真, Step3 命令行将MDK串口输出连接在电脑COM口上 MODE COM4 9600,0,8,1 ASSIGN COM4 <S1IN>S1OUT 第一行命令是改变com口模式, 第二行是将单片机(仿真虚拟软件)串口(Sx)映射(<SxIN>Sxout)到计算机COM口上。 Step4 开始运行,打开串口调试助手选择串口,此时上述被映射串口被占用,无法打开,需要打开的是与之配对的串口。 Step5 AD数据模拟输入 Perfect 来源: CSDN 作者: hanginghang 链接: https://blog.csdn.net/qq_35502383/article/details/104815855

STM32F4关键寄存器总结

放肆的年华 提交于 2020-03-12 07:53:52
—— 整理自STM32F4中文参考手册(ST)、STM32F4开发指南-寄存器版本(正点原子)、cortex m3与m4权威指南(英文) 目录 NVIC GPIO EXIT USART TIM(2~5) 基本设置 PWM相关 NVIC 此章节与内核相关,未在参考手册中出现,需参考权威指南。 ISER1~8 (Interrupt Set-Enable Registers)中断使能寄存器组。CM4 内核支持 256 个中断,用 8 个 32 位寄存器来控制,每个位控制一个中断。由于STM32F4 的可屏蔽中断最多只有 82 个,所以仅ISER[0~2]有效,其中ISER[0]的 bit0~31 分别对应中断0~31;ISER[1]的 bit0~32 对应中断 32~63;ISER[2]的 bit0~17 对应中断 64~81。设置相应的 ISER 位为 1,使特定中断被使能。 具体每一位对应哪个中断,请参考 stm32f4xx.h 里面的第 188 行处。 ICER1~8 (Interrupt Clear-Enable Registers)中断除能寄存器组。用来清除某个中断的使能。其对应位所代表的中断和 ISER 相同。通过置位来清除中断位。 ISPR1~8 (Interrupt Set-Pending Registers)中断挂起控制寄存器组。其对应位所代表的中断和 ISER 相同

STM32 HAL库的串口使用__HAL_LOCK(huart)

▼魔方 西西 提交于 2020-03-12 04:56:41
在使用HAL库的时候发现同一串口的接收和发送如果同时进行的话会发生问题,因为 如果用调用下面的函数 HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) 进行接收串口数据的时候,有可能 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout) 也正在进行中,而这两个函数都会对串口资源上锁 __HAL_LOCK(huart); 导致中断接收函数 HAL_StatusTypeDef HAL_UART_Receive_IT 返回hal_busy; 没有正常的执行,所以串口接收中断也没有打开,再也接收不到下一个字节了。 我简单粗爆的把 __HAL_LOCK(huart);注释掉了。 来源: https://www.cnblogs.com/jackweibe/p/7279212.html

基于STM32之UART串口通信协议(三)接收

蹲街弑〆低调 提交于 2020-03-12 02:00:20
一、前言 1、简介   回顾上一篇 UART发送 当中,已经讲解了如何实现UART的发送操作了,接下来这一篇将会继续讲解如何实现UART的接收操作。 2、UART简介   嵌入式开发中,UART串口通信协议是我们常用的通信协议之一,全称叫做通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)。 3、准备工作   在 UART详解 中已经有了详细的说明,按照里面的说明即可。 注:   建议每次编写好一个相关功能且测试功能成功使用后,保存备份并压缩成一份Demo例程,方便日后有需要的时候可以直接使用。   例如: 二、CubeMx配置及函数说明 说明:   如果有看过我写的 UART发送 的兄弟姐妹们应该会知道,在 UART发送 和 UART详解 中的CubeMx配置都是一样的。   但这一次不同,会在原本配置CubeMx的基础上,添加一些UART的中断配置来实现中断接收操作。 1、CubeMx配置 1)按照 UART详解 配置UART(若配置过,可以继续使用) 2)使能串口中断 3)设置中断优先级(如果没开启其他中断,那就默认即可,直接跳过) 4)代码生成(点击前最好把原本的工程关掉,不然有可能会有问题) 2、函数说明 1)CubeMx生成的UART初始化(在usart.c中) 说明:   会与上一篇 UART发送

安信可A9G模块连接机智云APP教程

只谈情不闲聊 提交于 2020-03-11 09:57:20
文章目录 一、准备 1.1 硬件准备 二、开发过程 2.1 注册机智云APP 2.2 硬件连接 2.3 连接机智云 2.4 注册模块到机智云产品 2.5 手机App查询状态以及控制设备 一、准备 1.1 硬件准备 一个A9 或者 A9G模块(建议买A9G开发板,方便开发) 流量卡或者电话卡,如果不用短信或者电话功能,建议购买物联网卡,不需要实名更方便 USB转串口模块,杜邦线,天线 供电:可以用USB转串口工具供电,也可以使用锂电池(3.7~4.2V)供电,也可以使用USB供电,但是要保证USB能提供足够的电流(建议峰值>600mA),串口供电也可以,同样保证峰值电流够大,有些串口芯片供电能力不足; 我在这里选择的是用USB供电,USB转串口工具接开发板的AT_TX/RX。在硬件都准备齐全之后,我们就开始连接AT串口,进行调试。 接线图如下: 二、开发过程 2.1 注册机智云APP 保证AT固件是最新固件,不是则需要到安信可官网下载并升级固件,使用ATI\r\n查询固件信息,与最新固件版本对比。 申请机智云账号 进入机智云开发者中心,注册登录机智云: 创建产品及数据点 点击创建新产品,选择移动网络,数据传输方式使用定长或者变长,定长就是每次上传数据需要把所有的数据点上传,变长就是可以一次只上传部分数据点,数据量大或者通讯频繁为了节约流量可以选变长,数据量不大可以选定长

VC串口通信实验

孤者浪人 提交于 2020-03-10 10:26:39
实验一:VC串口通信实验 一、实验目的 通过实验让学生了解串口通信的工作原理。 二、实验器材 计算机两台 串口连接线一根 GND(pin5) GND(pin5) TXD(pin3) RXD(pin2) RXD(pin2) TXD(pin3) RTS(pin7) CTS(pin8) CTS(pin8) RTS(pin7) DSR(pin6) DTR(pin4) DTR(pin4) DSR(pin6) 三、实验要求 用VC++对计算机的串口进行编程,并作一个简单的串口查询通讯程序。用一条九针的DB-9串口通讯线将计算机的com1口和com2口相连,com1作为接受口,com2作为发送口。 四、实验步骤 1. 建立项目 打开VC++6.0,建立一个基于对话框的MFC应用程序SCommTest(与我源代码一致,等会你会方便一点); 2. 在项目中插入MSComm控件 选择Project菜单下Add To Project子菜单中的 Components and Controls…选项,在弹出的对话框中双击Registered ActiveX Controls项(稍等一会,这个过程较慢),则所有注册过的ActiveX控件出现在列表框中。 选择Microsoft Communications Control, version 6.0,单击Insert按钮将它插入到我们的Project中来

51单片机和PC串口异步通信

冷暖自知 提交于 2020-03-10 10:25:15
单片机和PC机间的通信有很多方式,下面的程序主要用到的是51单片机的异步串行通信。 一.51单片机的串行通信管脚 P3.1为单片机的TXD管脚(Transfer Data),P3.2为单片机的RXD管脚(Receive Data)。 通过TXD管脚可以将CPU要发送的数据输出,RXD管脚可以将串行数据线传来的数据读入。 二.51单片机的串行通信控制寄存器SCON,电源控制寄存器PCON SCON: 其中,SM0,SM1控制着串行通信的工作方式。 SM0 SM1 工作方式 说明 波特率 0 0 0 移位寄存器 fosc/12 0 1 1 10位异步收发器(8位数据) 可变 1 0 2 11位异步收发器(9位数据) fosc/64或fosc/32 1 1 3 11位异步收发器(9位数据) 可变 其中工作方式1在使用当中比较多。 SM2为多机通信控制位,SM2=1,允许多机通信,=0不允许,实现点对点通信。这里先不讨论。 TB8用于储存发送数据的第9位。在方式2和方式3中,发送数据除了起始位,数据位,停止位外,还有一位校验位,存储在TB8中。 RB8用于存储接收数据的第9位。接收到传来的代码后,数据位存储在SBUF中,而校验位就存储在RB8中。通过分析,可以判别接受的数据是否正确。 TI为发送中断请求标志。当发送数据缓冲区为空的时候,TI通过硬件置1,通知CPU数据发送完毕

python读取bin文件并下发串口

馋奶兔 提交于 2020-03-10 04:54:11
python读取bin文件并下发串口 # coding:utf-8import time, serialfrom struct import *import binasciifile = open('E:\\1.bin', 'rb')i = 0while 1: c = file.read(1) # 将字节转换成16进制; ssss = str(binascii.b2a_hex(c))[2:-1] print(str(binascii.b2a_hex(c))[2:-1]) if not c: break ser = serial.Serial('COM3', 57600, timeout=1) ser.write(bytes().fromhex(ssss))# 将16进制转换为字节 if i % 16 == 0: time.sleep(0.001) #写每一行等待的时间 i += 1 ser.close()file.close() # coding:utf-8import time, serialfrom struct import *import binasciifile = open('E:\\1.bin', 'rb')i = 0while 1: c = file.read(1) # 将字节转换成16进制; ssss = str(binascii.b2a_hex(c))[2:-1

灯具板SOP

◇◆丶佛笑我妖孽 提交于 2020-03-09 05:54:50
生产流程(需提供作业指导书): 1.回流焊后目测。 2.波峰焊后目测。 3.测试静态电阻(含短路测试)。 4.烧入程序,观察输出指示(LED指示灯或CRT输出,CRT输出需配串口线)。 5.放入制具、上电,通过无线网络进行配置和后续测试。 所需设备: 1.PC(安装CRT软件、烧写软件)。 2.MCU编程线(可装在制具中)。 3.串口线(可装在制具中)。 4.网关板(配5V电源、网线,可装在制具中)。 5.其他TBD。 来源: https://www.cnblogs.com/shlb/p/12446583.html