• 2024-09-28STM32F407+IAP+Ymodem协议
    首先硬件, BOOT的接线方式是选择方式1,当stm32软件复位可以0x08000000重新启动程序重新加载bootloader程序移植官方的ymodem协议common.c1/**2******************************************************************************3*@fileSTM32F4xx_IAP/s
  • 2024-09-22stm32 FLASH闪存(读写内部FLASH&读取芯片ID)
    理论1.FLASH简介STM32F1系列的FLASH包含程序存储器、系统存储器和选项字节三个部分,通过闪存存储器接口(外设)(FLASH管理员)可以对程序存储器和选项字节进行擦除和编程读写FLASH的用途:   利用程序存储器的剩余空间来保存掉电不丢失的用户数据    通过在程序中编
  • 2024-09-17CRC 计算 C 语言例子
    #include<stdio.h>#include<stdint.h>#include<stdlib.h>voiduint32_2_bin(char*buf,uint32_tval){uint32_tb=0x80000000;while(b>0){if(val&b)*buf='1';else*buf='0';
  • 2024-09-14stm32驱动HX711称重传感器 c++代码分享
    一、HX711模块介绍HX711模块是一种专门用于称重传感器的放大器模块。它的主要功能是将测得的微小电压信号放大到可以被微控制器读取的范围。HX711模块通常配合称重传感器一起使用,例如压力传感器、负载细胞等。它采用24位的模数转换器(ADC)来精确测量传感器的电压变化。HX711模块具
  • 2024-09-14ADC_DMA_双buffer传输
    ADC_DMA_双buffer传输线程A切换buffer地址开启ADC转换,并使用DMA传输等待获取DMA中断的信号量,获取到信号量,表示上一次DMA传输已完成将地址通过消息队列传输给线程Buint32_t*adc_value=NULL;/*USERCODEENDHeader_adc_dma_task_function*/voidadc_dma_task_func
  • 2024-09-10Divide and Conquer:ZK除法中隐藏的漏洞
    ZK的崛起与演变曾几何时,零知识证明(以下简称ZK)仍然被认为是密码学教科书中的理论概念,至少在传统安全研究中很少被主流社群深入探索。然而在Web3.0领域,区块链技术的迅速发展,用短短几年时间实现了ZK从理论到实践的跨越式进展,一路蓬勃,高歌猛进。1985年诞生,2014年ZCash才用SNAR
  • 2024-09-10STM32F7外设FMC控制LCD显示屏
    STM32F7外设FMC控制LCD显示屏,显示屏的点阵LCD控制器(DotMatrixLCDController/Driver)是ST7066U。配置在CubeMX中选择图1根据实际情况选择,Bank几,LCD片选引脚。图2FMC原理对于FMC如何控制LCD,我的理解:FMC能自动发送数据读写RAM,通过FMC读写LCD的显存就可以完成显示的
  • 2024-09-03PA1-总结
    前言代码全是自己写的,没看过参考代码,思路也有部分和指导书不一样,算是个原创?然后毕竟pa1是简单的部分,也没有什么值得骄傲的地方,只是作为一次记录。毕竟自己的水平还是有限,可能部分地方会有些bug。自己成绩也不太好吧,程序设计不会,计算机系统基础说实话是0,只有在acm训练的经历,然后
  • 2024-09-03对OpenHarmony中LiteOS的内核分析——超时原理和应用
    前言在软件世界里面,超时是一个非常重要的概念。比如●当前线程暂时休眠1秒钟,休眠结束后继续执行●每5秒钟采集一下CPU利用率●数据发送失败,2秒钟以后再试一试●等待某种数据,但最多等待50毫秒应用//将当前任务休眠若干tick数,tick为时间单位,常见值为10毫秒LITE_OS_SEC_TEXTUINT3
  • 2024-09-03文件夹图标工具类 - C#小函数类推荐
          此文记录的是修改文件夹图片的工具类。/***文件夹图标工具类AustinLiu刘恒辉ProjectManagerandSoftwareDesignerE-Mail:[email protected]:http://lzhdim.cnblogs.comDate:2024-01-1515:18:00使用方法:
  • 2024-08-25题解:P7952 [✗✓OI R1] 天动万象
    提供一种和第一篇题解不同的理解思路。题目分析看到操作\(1\):拿dfs序水水就行了。看到操作\(2\):???特殊情况我们考虑一下特殊情况下操作\(2\)怎么处理。假如这棵树是一条链。设从根到叶节点权值如下:(随便赋的)节点编号123456权值123456如果我们
  • 2024-08-25题解:SP1182 SORTBIT - Sorted bit squence
    题意将区间\([m,n]\)的所有整数按照其二进制位表示的数中\(1\)的数量从小到大排序。如果\(1\)的数量相同,则按照数的大小排序。求序列中第\(k\)个数。其中,负数使用补码来表示:一个负数的二进制数与其相反数的二进制数之和恰好等于\(2^{32}\)。分析考虑用uint32_t存
  • 2024-08-24gameobject_template | gameobject_template_addon
    目录gameobject_templateentrytypedisplayIdIconNameContentTuningIdAINamegameobject_template_addon factionflagsgameobject_templateentry gameobject模板的IDtype gameobject模板类型,取值参考源码GameObjectData.h的structGameObjectTemplat
  • 2024-08-24TEA算法相关
    TEA算法相关TEATEA,TinyEncryptionAlgorithm,微型加密算法#include<stdint.h>voidencrypt(uint32_tv[2],constuint32_tk[4]){uint32_tv0=v[0],v1=v[1],sum=0,i;/*setup*/uint32_tdelta=0x9E3779B9;/*akeys
  • 2024-08-07将iap的接收升级数据部分移植到freertos系统中
    目录前言二、移植过程1.在任务中添加代码三、遇到的问题1.boot跳转卡死在TIM6的中断使能2.代码进入app后却卡死在boot的.s文件的B.处总结前言        在完成基于TCP服务器的iap裸机程序后得到一个新的任务,该任务让我把iap中通过TCP接收数据的代码移植
  • 2024-08-06ARM Cortex-M3中断简介
    目录中断优先级分组三个系统中断优先级配置寄存器SHPR1SHPR2SHPR3三个中断屏蔽寄存器PRIMASKFAULTMASKBASEPRI中断优先级分组ARMCortex-M内核的MCU具有一个用于中断管理的嵌套向量中断控制器(NVIC,全称:Nestedvectoredinterruptcontroller)。ARMCortex-M的NVIC最大可支持
  • 2024-08-04代码优化:使用C语言重构单片机汇编启动代码
    目录前言实现思路单片机启动流程汇编语言分析开发环境代码分析总结前言在近期的工作需求中,我需要对实时操作系统(RTOS)的底层代码进行一些必要的调整。为此,我重新深入研究了ARM架构的相关知识点。在这一过程中,我回顾了之前一直让我感到困惑的一个技术问题:在几乎所有的
  • 2024-08-01STM32G030F6P6TR_IAP
       bootloader程序 STM32FLASH读写1/**2******************************************************************************3*@filestmflash.c4*@brief读写STM32内部flash(STM32G030F6P6TR)5**************************************
  • 2024-07-25STM32 HAL 定时器代替HAL_Delay延时函数
    因为不知道的原因SysTick_Handler不进入中断,HAL_IncTick函数中的uwTick计数值不能自增,延时函数卡死。用定时器代替系统时钟计数,并重写HAL_Delay延时函数。不使用中断。需要找一个32位计数周期的定时器,才能和32位计数值匹配。我选择的TIM2,STM32H750的TIM2挂载在APB1上,时钟树设
  • 2024-07-2402-2 【编写loader工程内容】检测内存容量
    方法:利用BIOS中断来检测内存容量,具体是BIOSINT0x15(或INT15H)具体使用方法:参考文档链接:https://wiki.osdev.org/Detecting_Memory_(x86)实操(1)首先定义一个结构体因为内存是分成好多块的,有一些是已经被硬件占用了:因此检测内存返回的结构体应该是个结构体数组
  • 2024-07-23STM32读写FLASH
    要点:读写前要解锁并擦除整页才可以重新写入 测试代码#include"my_flash.H"/***@brief往内部FLASH写入数据*@paramaddr写入地址*@parampdata存储待写数据*@retvalNone*/voidFLASH_Inside_Wr(uint32_taddr,uint32_tPdata){//定义局部变
  • 2024-07-23算法识别(一)--TEA及其魔改
    0x01算法概要TEA(tinyencryptionalgorithm),属于分组算法,每次操作64位数,分成2个4字节无符号整数(unsignedint),密钥128位,为4个4字节无符号整型(unsignedint),delta(unsignedint)一般为0x9e3779b9,进行轮数一般>=32轮.0x02算法实现c实现#include<cstdint>unsigne
  • 2024-07-15STM32标准库函数功能介绍————EXTI库
    1.voidEXTI_DeInit(void);函数解释:EXTI的反初始化函数,即恢复默认状态。参数解释:无参数2.voidEXTI_Init(EXTI_InitTypeDef*EXTI_InitStruct);函数解释:EXTI的初始化函数参数解释:注意要加&号3.voidEXTI_StructInit(EXTI_InitTypeDef*EXTI_InitStruct);函数解释:将EXTI
  • 2024-07-09单片机-Flash动态自保存
         说明:该方法为固定大小的数据包方式进行记录,写满一页后再擦除设定页从新记录,增加Flash使用寿命。    环境需求:Flash需要可程序读写。    以STM32,中容量为例(HAL库方式)。        注意事项:避开程序空间,注意页的大小有的为1K,有的为2K按需
  • 2024-07-08【免杀】图片隐写shellcode
    写入shellcode(C#):usingSystem;usingSystem.IO;classProgram{privatestaticboolIsBmpFile(stringfilePath){try{using(FileStreamstream=newFileStream(filePath,FileMode.Open,FileAccess.Read))u