串口f401 stm 32
Win32编程之线程池同步(十三)
1.InterlockedAdd函数 InterlockedAdd 是 Windows API 中的一个原子操作函数,用于在多线程环境下对一个变量执行原子加法操作。原子操作是指在执行期间不会被其他线程中断,从而确保多线程环境下的数据一致性。 函数原型: LONG InterlockedAdd( LO ......
Stm32F103使用硬件I2C的DMA模式失败
CubeMX配置的硬件I2C,DMA模式,下面发送函数 /** * @brief 向OLED发送数据的函数 * @param data 要发送的数据 * @param len 要发送的数据长度 * @return None * @note 此函数是移植本驱动时的重要函数 将本驱动库移植到其他平台时应 ......
08_了解STM32串口通讯
了解STM32串口通讯 TTL 原理图 RS232 原理图 串口 差分: 对比一根线发送一根线接收, 抗干扰能力更强 485舵机 ......
09_学会单片机STM32的IIC通信
学会单片机STM32的IIC通信 开发过程中如何选择什么样的通讯接口 通讯接口如何使用 为何需要I2C 用途 12C只有两条线一条串行数据线:SDA,一条是时钟线SCL,使用SCL, SDA这两根信号线就实现了设备之间的数据交互,它方便了工程师的布线。因此,I2C总线被非常广泛地应用在EEPROM, ......
04_串口打印print函数
串口打印print函数 int fputc(int ch, FILE *f) { HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 1000); return ch; } ......
Linux(麒麟)报没有打开串口权限/dev/ttyACM0
1、查看串口 ls -l /dev/ttyACM0 crw-rw 1 root dialout 166, 0 5月 24 17:17 /dev/ttyACM0 2、可以看到用户 (owner 是 root)而所属用户组为 dialout, 因此一种方法是把我们的登陆账号加入到这个用户组。 查看系统用 ......
5.1 内存CRC32完整性检测
CRC校验技术是用于检测数据传输或存储过程中是否出现了错误的一种方法,校验算法可以通过计算应用与数据的循环冗余校验(CRC)检验值来检测任何数据损坏。通过运用本校验技术我们可以实现对特定内存区域以及磁盘文件进行完整性检测,并以此来判定特定程序内存是否发生了变化,如果发生变化则拒绝执行,通过此种方法来... ......
5.2 磁盘CRC32完整性检测
CRC校验技术是用于检测数据传输或存储过程中是否出现了错误的一种方法,校验算法可以通过计算应用与数据的循环冗余校验(CRC)检验值来检测任何数据损坏。通过运用本校验技术我们可以实现对特定内存区域以及磁盘文件进行完整性检测,并以此来判定特定程序内存是否发生了变化,如果发生变化则拒绝执行,通过此种方法来... ......
Win32编程之线程池(十二)
一、线程池概念介绍 1.线程的执行流程 2.线程池原理 线程创建API和线程池API对比: 二、线程池异步函数的调用 三、线程池的周期性调用 四、线程池内核对象触发调用 五、线程池IO完成调用 ......
基于C语言的串口AT指令发送实例解析
一 知识点 1 AI指令后面一定要加 \n\r 2 注意AT指令里面待双引号的这种,要使用斜杠隔开。 二 源码: void Set_Pdu_Mode(void) { u8 a = 1; if(atKey == 1)//允许发送AT指令 { atKey = 0; UartSendStr("test s ......
每天一个linux命令(32):gzip命令
减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压 ......
Win32编程之debugview调试(十一)
一、debugview本地调试 代码中通过OutputDebugString()函数打印印象: for (int i = 0; i < 10; i++) { OutputDebugString(TEXT("hello word")); } 程序编程成功后,先打开DebugView Include:默 ......
欢迎来到我的世界,开启探索国产芯片GD32 MCU之旅!
引言 大家好!我是Lawrence,非常高兴加入博客园这个平台,并在这里开始我的【十年磨一剑!】博客的创作之旅。 博客的主题和内容介绍 我的博客将主要探索国产芯片GD32 MCU这一领域,在未来的文章中,我将主要就以下4个角度分享内容: 1.GD32 MCU各系列产品前沿分享 2.GD32 MCU各 ......
STM32基础(二)
一、 STM32F103C8T6开发板软件工具安装。 1.安装Keil5 MDK。(安装的Keil5 MDK压缩包出来的部分文件和破解工具被[病毒和威胁实时保护删掉了导致不显示开发板型号]) 2.安装器件支持包。(安装对应型号) 3.软件注册。(破解) 4.安装STLINK驱动。 5.安装USB转串 ......
5.0 CRC32校验技术概述
CRC校验技术是用于检测数据传输或存储过程中是否出现了错误的一种方法,校验算法可以通过计算应用与数据的循环冗余校验(CRC)检验值来检测任何数据损坏。通过运用本校验技术我们可以实现对特定内存区域以及磁盘文件进行完整性检测,并以此来判定特定程序内存是否发生了变化,如果发生变化则拒绝执行,通过此种方法来... ......
2021-6-5-stm32系统板历程
这份笔记是我离开团队的第一份笔记 不是想纪念 而是想让自己明白以后要更加努力 AD部分 不要用中文名!! 常用封装 0805规格 104电容代表10*10的4次方,对应是100nf 105电容就是0.1uf stm32引脚 OSC接外部高速晶振(8M),OSC32接外部低速晶振 VDD接3.3电 V ......
Win32编程之异步完成IO(十)
一、文件的异步写入 #include <Windows.h> #include <stdio.h> int main() { HANDLE hFile = CreateFile(TEXT("test.txt"), GENERIC_WRITE | GENERIC_READ, 0, NULL, OPEN ......
Win32编程之文件设备(九)
一、文件的创建 CreateFile 是一个 Windows API 函数,用于创建或打开文件、设备、目录或管道。它是 Windows 操作系统中文件和 I/O 操作的基础之一。CreateFile 允许你指定文件的访问方式、共享模式、创建选项等,并返回一个文件句柄,通过该句柄可以执行读取、写入、关 ......
树莓派3B/3B+的串口使用
树莓派包含两个串口,一个称之为硬件串口(/dev/ttyAMA0),一个称之为mini串口(/dev/ttyS0)。硬件串口由硬件实现,有单独的波特率时钟源,性能高、可靠。mini串口时钟源是由CPU内核时钟提供,波特率受到内核时钟的影响,不稳定。想要通过树莓派的GPIO引脚进行稳定的串口通信,需要 ......
Win32编程之线程开发(八)
一、线程概念 (1).Windows线程是可以执行的代码的实例,系统是以线程为单位调度程序,一个程序当中可以有多个线程,实现多任务的处理 (2).Windows线程的特点: 线程都具有一个ID 每个线程都具有自己的内存栈 同一进程中的线程使用同一个地址空间 (3).线程的调度:操作系统将CPU的执行 ......
Win32编程之动态库(七)
一、动态库的特点 运行时独立存在 源码不会链接到执行程序 使用时加载(使用动态库必须使用动态库执行) 与静态库的比较:由于静态库是将代码嵌入到使用程序中,多个程序使用时,会有多份代码,所有代码体积会增大,动态库的代码只需要存在一份,其他程序通过函数地址使用,所以代码体积小;静态库发生变化后,新的代码 ......
Win32编程之静态库(六)
一、静态库的特点 运行不存在 静态库源码被链接到调用程序中 目标程序的归档 二、C语言静态库 1.C静态库的创建 创建一个静态库项目 添加库程序,源文件使用C文件 2.C静态库的使用 库路径的设置:可以使用pragma关键字设置;#pragma comment(lib, "../lib/clib.l ......
关于配置MCU从FLASH某一位置开始运行——以CH32V203为例
正常MCU运行时,都是从FLASH 0起始地址开始运行,有时因为某些需要,需要配置从非0地址开始运行。以CH32V203为例(适用于其他CH32V系列),主要修改配置如下: 主要集中在ld文件的修改: 1、修改FLASH的分配,将FLASH分配成2块区域,如下图 /* CH32V20x_D6 - C ......
【C#】【串口通信】建议串口调试WinForm桌面应用实例——已实现功能<存在未知BUG>
1、界面组件 2、界面实现代码 1 namespace WinFormsApp1 2 { 3 partial class Form1 4 { 5 /// <summary> 6 /// Required designer variable. 7 /// </summary> 8 private Sy ......
CH32V208与CH582芯片的区别
目录 CH32V208和CH582都是沁恒的支持BLE5.0+的MCU,下面介绍两者的区别。 选型方面: ①CH32V208比CH582的ram和零等待flash更多。使用CH582,对速度有要求的代码,需要放到ram中运行;使用V208,对速度有要求的代码可以放到零等待flash中,不会占用ram ......
USB-CDC虚拟串口实现printf功能
本篇文章介绍如何使用CH32来实现USB虚拟串口打印功能,代替传统中的串口打印。 相比传统串口优势点: 1,速度快,一包大概也就几十us,而传统的大概要用到几ms。 2,节省了一个USB转串口芯片的成本。 3,在没有USB转串口工具的情况下,可以很方便调试。 下面就介绍怎么配置 USB-FS口 一, ......
QT6.5.2msvc2022静态编译套件成品32位
我自己编译的QT6.5.2成品库,静态编译,release和debug版本,压缩包250m解压后1G 要是自己编译需要占用70G磁盘空间而且非常慢。 关键词:QT6.5.2;QT静态编译;QT开发套件成品 链接:https://pan.baidu.com/s/1vGBzn-hJwO1vsYp3dfp ......
system_stm32f4xx.c文件配置时钟
static void SetSysClock(void) { /******************************************************************************/ /* PLL (clocked by HSE) used as Syste ......
c++ 32位异常还原
本文中的例子下载地址 https://wwmf.lanzout.com/ij4zq18au9yd 密码:2vts 确定try的位置 首先确定try的位置 上面明显是一个SEH结构,在c++异常中,state固定在var_4的位置上,这里state初始化位-1,我们将var_4改名为state 上图为 ......