1、为何引入链表 在程序中经常面临一个问题,我们需要保存一定数量的对象,但是对象数目是不确定的,或者说是随时增加或减少的。这时候最简单的方法是创建一个足够大的数组,用来存储这些对象。我最近开发一个项目就遇到类似的问题,下面我把问题简化一下。 需求:通过PC下发一些矩形的坐标和宽高信息,每个区域有个I ...
转载
2021-03-12 10:20:00
570阅读
2评论
在stm32开发时候,需要用到一些标准的通讯协议,比如modbus,canopen,tcp/ip等,本次下载实验了一下开源库libmodbus,结合Qt进行简单实验;基本工具需要如下:1、libmodbus开源库:https://libmodbus.org/download/;2、Qt,开发环境,自行安装下载;3、虚拟串口工具:Configure Virtual Serial Port Drive
转载
2024-04-03 06:49:23
1313阅读
Arm Cortex M 微控制器 STM32F4 通过 FreeRTOS 和 Mbed OS 实现的实时操作系统,使用了 C 语言(微控制器的“编程”语言)、C++语言和 MicroPython(允许在微控制器上使用 Python 语言)数字控制吸尘器。STM32F4微控制器STM32F4微控制器不能单独使用,除非为其构建专用开发或特定板。 作为早期学习者,我们的最佳选择是使用可用的 32F42
STM32如何使用arduino_ide进行开发很多朋友问到,我不懂硬件,不懂寄存器操作,C语言也不是很会用,能写STM32单片机代码吗?其实还是有小路子的,用Arduino_IDE上位机软件,借助Arduino的库,使用C++/C语言编写STM32单片机代码。 这里以正点原子MINI板为例子,使用Arduino_IDE完成点灯和串口打印。第一步,先把Arduino_IDE软件安装好。Arduin
TensorTensor的基本数据类型有五种:32位浮点型:torch.FloatTensor。 (默认) 64位整型:torch.LongTensor。 32位整型:torch.IntTensor。 16位整型:torch.ShortTensor。 64位浮点型:torch.DoubleTensor。 除以上数字类型外,还有 byte和chart型 基本操作如下:# torch.Tensor -
转载
2023-09-01 08:17:54
231阅读
题目给的是bin文件,基本上就是需要我们手动修复的固件逆向。本文参考了网上多篇文章,最终汇总在一篇,对这道新的STM32题进行解题。
原创
2023-12-23 22:47:28
51阅读
题目给的是bin文件,基本上就是需要我们手动修复的固件逆向。本文参考了网上多篇文章,最终汇总在一篇,对这道新的STM32题进行解题。
原创
2023-12-14 16:58:11
120阅读
By Derrick Wang之前我一直在找一种方案,可以把stm32打造成一个真正的创客平台。因为传统的开发环境安装编译,眼花缭乱的工具栏和按钮并不实用于非电子类专业的爱好者设计出自己的作品。这样的高门槛把很多有兴趣者拒之门外。一个没有mcu编程经验的初学者,要想让芯片跑起来,出现问题有时候要对照一两千页的英文文档来排查,这也绝非一天两天可以打下坚实的基础。所以今天就介绍这种可以脱离编译器,中小
转载
2023-06-30 21:27:55
451阅读
说起低功耗的单片机第一个想起来的肯定是MSP430系列单片机,它以极地的功耗和较强的性能占领了低功耗控制、应用领域。但是我不会MSP430单片机,其实也没什么会不会,学学都能用,只是嫌MSP430的开发环境和调试方式和ARM的不一样,嫌麻烦就没有使用过MSP430,用的比较多的单片机还是STM32系列的单片机,虽然是ARM内核,但是由于不能跑Linux系统,还是将其划归为单片机,无所谓,不是所有的应
原创
2021-06-17 15:49:57
1345阅读
第一次接触了memset() 函数。 感觉的确是一个能够高效的实现对一个array 进行一次性初始化的fancy way。 下面给出介绍:memset() 函数定义在头文件<<cstring>>中, prototype 如下: void * memset ( void * ptr, int ch, size_t num );函数的作用是: fill the first nu
基于STM32汇编程序的编写一、新建项目二、编写程序三、调试四、分析生成的HEX文件1. 文件定义2. 数据表示五、总结参考 一、新建项目打开MDK,选择Project下的New uVision Project: 选择项目路径,设置工程名称: 选择相应芯片(本文选择STM32f103ZE): 对于运行环境,选择CMSIS下的CORE和Device下的Startup:二、编写程序右键单击Sourc
转载
2024-04-02 12:51:48
119阅读
中断类型: 1、系统异常,体现在内核水平 2、外部中断,体现在外设水平 中断编程要点: 1、使能初始化 NVIC_
原创
2022-08-17 10:55:52
139阅读
说在前面的话 这是一篇2020年欠下的文章,一直搁置着,现在还上。之前分享了两篇关于Protobuf的笔记:Proto...
原创
2021-06-02 13:52:58
4263阅读
参考资料:《正点原子STM32F4 FreeRTOS开发手册_V1.1》《野火FreeRTOS 内核实现与应用开发实战—基于STM32》学习RTOS的意义当我们进入嵌入式这个领域的时候,往往首先接触的都是单片机编程,单片机编程又 首选51 单片机来入门。这里面说的单片机编程通常都是指裸机编程,即不加入任何RTOS (Real Time Operating System 实时操作系统)的程序。常用的
转载
2024-05-16 11:02:35
108阅读
原文地址1 异常类型CM3内核支持256个中断,其中 16个 内核中断和240个外部中断,并具有256级可编程中断设置。STM32并没有
原创
2021-01-17 11:19:51
1574阅读
既然我们要使用RTC就要先对它有个大致的了解,知己知彼才能百战不殆嘛!STM32内部RTC功能非常实用,它的供电和时钟是独立于内核的,可以说是STM32内部独立的外设模块,有加上RTC内部寄存器不受系统复位掉电的影响,我们可以才用外部电池供电和32768表振晶体来实现真正RTC(实时时钟)功能。的这里引用手册里一段概述“RTC由两个主要部分组成。第一部分(APB1接口)用来和 APB1
转载
2024-08-23 13:33:33
207阅读
1 STM32 中断优先级概念STM32(coetex-M3)有两个中断优先级概念,抢占式优先级和响应式优先级,也把响应式优先级称作“亚优先级”或“副优先级”,每个中断源都需要被指定属于哪一种优先级。1、何为抢占式优先级(pre-emption priority)断嵌套。2、何为响应式优先级 在抢占式优先级相同的情况下,高相应的优先级首先被相应。 在抢占式优先级相同的情况下,如
转载
2024-06-18 20:27:27
419阅读
STM32的ADC模块采用了逐次逼近型,速度快,最高可达几十MHz工作频率。一般,为了获得较为准确的采样结果,ADC采样速率建议6分频,不要超过14MHz。通常情况下,芯片包括3个12bit的ADC模块,每个模块具有1个ADC控制器,ADC1和ADC2均有16个外部采样通道和2个内部采样通道,ADC3有8个外部通道和5个内部采样通道。3个模块复用16个外部采样输入引脚,也就是说同时最多支持16路外
转载
2024-09-02 09:30:42
322阅读
1、按键实验:
GPIO_ReadInputDataBit来获取位状态,高电平返回1.低电平返回0;
2、GPIO——位带操作:
3、启动文件详解:
系统启动流程:
在离开复位状态后,CM3做的第一件事就是读取下列两个32位整数的值。
1、从地址0x00000000 处取出MSP的初始值。
2、从地址0x00000004 处取出PC
转载
2023-11-24 23:06:25
82阅读
GPIOx_CRL(x=A~E) 地址偏移:端口配置的初始地址加上偏移地址就是该特殊寄存器的地址 GPIO通用输入输出8种工作模式 1.浮空输入模式: (1)当GPIOx_CRL或GPIOx_CRH寄存器的CNF[1:0]位设置为01,并且MODE[1:0]位设置为00时 (2)STM32复位之后默 ...
转载
2021-04-08 13:51:00
891阅读
2评论