草庐IT

串口hex

全部标签

STM32F407的串口接收不定长数据两种方式HAL库

文章目录概要整体架构流程不用DMA的方式使用DMA方式小结概要我的博客:https://hahaxiong0204.github.ioSTM32的串口接收不定长数据,最近在看超子说物联网,感觉太麻烦了不适合直接上手,然后我自己总结了两种方法:1、不利用DMA2、利用DMA方式整体架构流程这个HAL整起来是方便,但是HAL整体来说对于细节很到位就是逻辑很强逻辑,也就很繁琐,效率又不高,还缺胳膊少腿的。好用,就比如说这个串口接收,没有专门的方法调用。搞的就很麻烦,我第一次接触就是这感觉哈,大佬除外。然后我看到超子说物联网可以用这个串口的空闲中断来搞这个串口的不定长接收。大致的原理是:在接收每一段数

Golang 串口通信

简介串口通信是一种常见的硬件通信方式,用于在计算机和外部设备之间传输数据。Golang(Go语言)作为一种高效、可靠的编程语言,提供了丰富的库和工具用于串口通信。本文将介绍如何使用Golang进行串口通信,包括串口配置、数据读写和错误处理等方面。安装依赖在开始之前,我们需要先安装Golang的串口通信库。目前,有很多第三方的串口通信库可供选择,如"go-serial"和"go-serialport"等。你可以通过以下命令安装其中一个库:gogetgithub.com/jacobsa/go-serial/serial打开串口在进行串口通信之前,首先需要打开串口。在Golang中,打开串口可以使用

STM32—串口发送于接收

目录串口通讯配置1、初始化IO口 2、初始化串口1——发送一个字节2——发送数组3——发送字符串4——发送半字5——串口的重定向中断配置串口通讯        串口通讯(SerialCommunication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。    所以很有必要去了解串口。配置    既然想要使用串口,那么就需要懂得配置,只有配置出我们想要的,才能保证设备之间的通讯。     首先,寻找到与串口相对于的IO口,这里我以PA9,PA10,为例。1、初始化GPIO口USART_GPIO_

【嵌入式开发学习】__扒一扒单片机串口IAP原理

目录一、什么是IAP?二、串口IAP实验1.实验说明2.工程说明IAP工程:LED工程:3.IAP源码说明 (1)主函数:(2)主菜单函数Main_Menu(3)下载程序功能函数SerialDownload 4、下载验证(1)下载IAP程序 (2)通过IAP程序引导下载LED程序(* ̄︶ ̄)创作不易!期待你们的 点赞、收藏和评论喔。 一、什么是IAP?IAP是 InApplicationProgramming的首字母缩写,IAP是用户自己的程序在运行过程中对UserFlash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。在重新编程过程中可以

【雕爷学编程】Arduino智能家居之使用BH1750光照传感器获取光照强度值并输出到串口监视器

Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用ArduinoIDE(集成开发环境)来编写、编译和上传代码到Arduino板上。Arduino还有一个丰富的库和社区,你可以利用它们来扩展Arduino的功能和学习Arduino的知识。Arduino的特点是:开放源码:Arduino的硬件和软件都是开放源码的,你可以自由地修改、复制和分享它们。易用:Arduino的硬件和软件都是为初学者和非专业

STM32 GPIO模拟i2c通信实现sht20的温湿度采样 并以JSON格式上报(串口调试助手为例)

一、先了解I2C协议由时钟线SCL和数据线SDA构成的通信线路,利用上拉电阻将它们拉成高电平(表示总线空闲)    I2C总线可以有多个从设备,且每个从设备都有一个唯一的7bit地址物理识别,因为I2C地址全0为广播地址,所以I2C总线理论上最多能带2^7-1=127个从设备(I2C:半双工通信的同步串行通信协议,采用电平信号,数据传输采用大端方式MSB,先发高位数据)I2C总线通信时序:I2C协议的起始信号(start):当SCL保持高电平时,SDA出现一个下降沿,产生起始位I2C协议的停止信号(stop):当SCL保持高电平时,SDA出现一个上升沿,产生停止位(停止通信后,总线空闲,处于高

STM32的bootloader程序(通过串口更新STM32应用程序)

1什么是bootloader?        Bootloader,也被称为引导加载程序,是操作系统启动过程中的一个重要组成部分。它是存储在非易失性存储器中的一段小程序,负责在操作系统内核运行之前加载并启动一些必要的系统组件。        当计算机开机后,BIOS(基本输入/输出系统)会首先运行,检查并初始化系统硬件,然后从设定的启动设备(如硬盘、U盘等)中找到Bootloader并把控制权交给它。Bootloader随后开始执行,它会加载操作系统内核到内存,并传递一些必要的系统参数。2为什么需要Bootloader?        Bootloader的任务很重要,因为它构成了硬件和操作系

STM32 cubeMX HAL库 LL库 串口死机及overrun error中断

遇到问题一次偶然经历,串口接收数据时,只接了TX和RX,忘了接地线,单片机能发送数据,但是一旦接收一个字节数据,马上就死机,表现为主函数无反应,串口能进中断,也能响应,但是不能再发送数据了。·经过排查,串口是进入了overrun中断·猜测是没接地线导致串口电平错误,一帧接收完后RX引脚处于不正确的电平,导致串口进入错误中断·通过调用FLAG查询函数可以得知overrun中断标志位被置位LL_USART_IsActiveFlag_ORE(constUSART_TypeDef*USARTx)·原因是在配置串口参数时,Overrun和DMAonRXError默认是打开的。关于Overrun和DMAo

针对Arduino IDE 2.0安装后找不到端口的问题(USB转串口驱动)(Win11)

一、ArduinoIDE下安装以及配置参考我的这篇博客:ArduinoIDE2.0安装,ESP8266/ESP32环境配置(Win11)_JASON丶LI的博客-CSDN博客https://blog.csdn.net/weixin_61908666/article/details/127828616?spm=1001.2014.3001.5501二、找不到端口的问题问题:在已插入开发板的情况下,点击在选择端口的时候显示未发现端原因:驱动未安装三、解决方案1、下载驱动我在已经将驱动打包好上传到百度网盘了,大家直接下载就好链接:https://pan.baidu.com/s/1YeuC0JhuV2

51单片机——串口通信详解(STC89C51为例)

目录一、什么是通信:1、以信件为例进行理解:2、推广到电子通信:3、具体到串口通信:二、具体到单片机STC89C51与电脑沟通(方式1):1、总体思路:2、了解51单片机串口硬件电路:(建议有数电基础的人了解)3、编写程序:一、什么是通信:1、以信件为例进行理解:    试想在古代,我们怎么依靠信件来传递信息:写信-->传信-->读信,这个是我们表面理解的步骤,如果我们看的深层一点,可以理解为:(假设写信人想让收信人去将XX屋子的椅子移动一厘米)    写信人将“将XX屋子的椅子移动一厘米”用双方规定好意思的象形字即汉字表示,并记录在纸张载体上——》通过鸽子或者别人骑马把纸张载体送给收信人——