- 2024-11-18一些值得注意的STL使用,用错了可能就复杂度错误了
前言一些见到(或看到别人,或写了)的问题就记一下吧正文lower_boundSTL分为两类,一类是支持随机访问的,另一类是不支持随机访问的。而不支持随机访问的,若使用lower_bound函数,请一定要使用.....lower_bound(...),因为这样的复杂度是对的(\(\log\)),否则就是线性的。我在cpprefernce上
- 2024-11-16第十六届蓝桥杯嵌入式赛道备赛---ADC+DMA多通道读取(日志四)
前言 ADC转换是一个比较简单的模块,但是其中有很多的细节问题需要处理到,这些问题也是我在写程序的时候遇到的。如果是用ADC+DMA,或者是ADC多通道,这些问题相信你也会遇到,接下来将详细展开讨论。 先来看一下开发板中为我们准备的对应资源---电位器。两
- 2024-11-14位运算例子
嵌入式C语言位操作的一些常见用法归纳一、常用的方法借鉴野火STM32开发板教程中的内容1.变量的某位清零//定义一个变量a=10011111b(二进制数)unsignedchara=0x9f;//对bit2清零a&=~(1<<2);//括号中的1左移两位,(1<<2)得二进制数:00000100b//按位取反,~(1
- 2024-11-08基于Zynq FPGA对雷龙SD NAND的测试
一、SDNAND特征1.1SD卡简介雷龙的SDNAND有很多型号,在测试中使用的是CSNP4GCR01-AMW与CSNP32GCR01-AOW。芯片是基于NANDFLASH和SD控制器实现的SD卡。具有强大的坏块管理和纠错功能,并且在意外掉电的情况下同样能保证数据的安全。其特点如下:接口支持SD2
- 2024-11-06操作系统:内核基础实现(三)内存分配的初步实现
本随笔对应项目代码(更新中):https://github.com/himuhuan/HimuOS位图的实现KrBitMap结构用作任意长度的常规用途一维位图的标头.内核使用位图作为一种经济方式来跟踪一组可重用项。structKrBitMap{uint32_tLength;PRIVATE_DATA_MEMBERBYTE*_buffer;};voidKr
- 2024-11-02STM32 第21章 DMA--直接存储器访问
时间:2024.10.31-11.2参考资料:《零死角玩转STM32》“DMA--直接存储器访问”章节编程部分的代码基于12-GPIO输出-使用固件库点亮LED灯一、学习内容1、DMA功能框图和DMA初始化结构体1.1DMA功能框图1.1.1DMA简介DMA:DataMemoryAccess,直接存储器访问。和GPIO、串口等一
- 2024-10-28【NSSCTF】nssctf2024秋季招新赛赛
【NSSCTF】2024年NSSCTF秋季招新赛Reverse签到?key加密密文:主加密程序解密脚本:a=[32,39,38,37,44,45,15,34,20,30,33,24,9,223,200,28,231,5,229,226,238,26,230,4,217,201,227,10,
- 2024-10-27NSSCTF2024新生赛
NSSCTF2024新生赛Reverse签到?key加密密文:主加密程序解密脚本:a=[32,39,38,37,44,45,15,34,20,30,33,24,9,223,200,28,231,5,229,226,238,26,230,4,217,201,227,10,245,241,
- 2024-10-23STM32中U8, U16 ,U32啥意思
1.unsigned int 32 (C语言标准表达方法) 2.uint32_t ; 3.u32; 这三种方式都是在表达同一个意思。可为什么ST的开发人员要搞的这么乱呢? 其实ST 搞这么多花样,无非是想开发人员在写代码时定义数据类型能少写几个符号,然后又因为前后版本
- 2024-10-23STM32 第16章STM32中断应用概览
时间:2024.10.23一、学习内容1.异常类型1.1中断简介STM32中断非常强大,每个外设都可以产生中断,因此中断是一个公共的部分。在本章讨论中,如无特别说明,异常就是中断,中断就是异常。1.2中断类型系统异常,体现在内核水平(Cortex-M3)外部中断,体现在外设水平有关系统异常和中断的
- 2024-10-22密码密码密码
参考文章(多数都是搬这个老登的):https://www.cnblogs.com/gaoyucan/p/17087521.html流密码常见的有RC4、Salsa20以及ChaCha20.之前一直是识别加密算法,虽然只会识别一个rc4,遇到其他还是傻眼,一直没想到流密码的密文是仅由明文与密钥流异或得到的,以此识别出流密码后,动调
- 2024-10-21回忆录——ST内部FLASH
1.读内部FLASH点击查看代码/***函数:FLASH读取一个32位的字*参数:Address要读取数据的字地址*返回值:指定地址下的数据*/uint32_tMyFLASH_ReadWord(uint32_tAddress){ return*((__IOuint32_t*)(Address)); //使用指针访问指定地址下的数据并返
- 2024-10-18STM32 ADC实例解析(1)-寄存器方式
文章目录一、寄存器列表二、示例代码三、总结优点:缺点:在很长的一段时间里我在项目中都是使用寄存器方式一、寄存器列表__IOuint32_tSR;/!<ADC状态寄存器,地址偏移量:0x00/__IOuint32_tCR1;/!<ADC控制寄存器1,地址偏移量:0x04/__IOuint32_tCR2;/!<ADC控制寄存
- 2024-10-17ton tact合约中的map采用go的调用方式
tact中的map结构:structRoundInfo{//Purchaserecordsquotient:map<Intasuint32,BuyInfo>;//keyissequencenumber//Orderanti-duplicationrecords,keyisordernumber,valueissequencenumberorders:map<Intasuint32,Intasuint16
- 2024-10-17单片机项目|基于STM32实现具有室内定位功能的智能手环的设计
作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,有较为丰富的相关经验。期待与各位高校教师、企业
- 2024-10-10ESP32移植Openharmony设备开发---(3)任务调度
任务调度官方文档:OpenAtomOpenHarmony基本概念从系统角度看,任务是竞争系统资源的最小运行单元。任务可以使用或等待CPU、使用内存空间等系统资源,各任务的运行相互独立。OpenHarmonyLiteOS-M的任务模块可以给用户提供多个任务,实现任务间的切换,帮助用户管理业务程序流程。
- 2024-10-09通过GRUB Multiboot2引导自制操作系统3h
通过GRUBMultiboot2引导自制操作系统前言之前花了一周时间,从头学习了传统BIOS的启动流程。惊讶于背后丰富的技术细节的同时,也感叹x86架构那厚重的历史包袱。毕竟,谁能想到,一个现代CPU竟然需要通过操作“键盘控制器寄存器”来启用一条地址线呢。最终,出于兼容性和功能性的
- 2024-10-09串口的“窗口”应用(如何通过串口打印其他寄存器内的数据)
一、串口应用概述本文重点叙述使用串口打印其他寄存器内的数据,并且使用STM32的HAL库进行代码编写。对于串口这个外设,我们一开始接触的就是(串口与上位机通信)用串口返回我们发送的数据。这个实验,可以让我们对串口有一个较为直观的感受。在这个实验中,串口打印的数据来自串口自
- 2024-10-08CH57X/CH58X/CH59X 加PA应用
一、前言在有些时候产品需要做到更远的距离在原来的基础上加上PA放大芯片来实现广播或者连接距离上的提升。PA是PowerAmplifier的简称,中文名称为功率放大器,简称“功放”,指在给定失真率条件下,能产生最大功率输出以驱动某一负载的放大器。对于射频通信系统,PA负责发射通道
- 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