在跑马地程序中出现了这样一段宏定义 1: #ifndef _LED_h2: #define _LED_h这里宏定义为什么是两个下划线呢?野火说这样可以防止头文件重复包含,可以避免这个宏标识符与其他定义重名。在标准库中一般不会出现有下划线的宏定义的。“如果在另一个文件中已经包含了该头文件,那么就是已经定义了__LED_H这个变量(#define __LED_H),再一次包含该头文件时,#ifnde
mqttclient一个高性能、高稳定性的跨平台MQTT客户端一个高性能、高稳定性的跨平台MQTT客户端,基于socket API之上开发,可以在嵌入式设备(FreeRTOS/LiteOS/RT-Thread/TencentOS tiny)、Linux、Windows、Mac上使用,拥有非常简洁的API接口,以极少的资源实现QOS2的服务质量,并且无缝衔接了mbedtls加密库。开源地址:http
# 如何实现 STM32F 系统架构
在嵌入式开发中,STM32F 系列微控制器以其高性能、低功耗和丰富的外设而受到广泛欢迎。本篇文章旨在帮助刚入行的小白了解如何构建 STM32F 系统架构,并通过简单的步骤和示例代码引导你顺利完成这个任务。以下是整个流程的概述:
## 流程概述
| 步骤 | 描述 |
|--
STM32系列博客:STM32学习之旅① 开发环境搭建STM32学习之旅② 固件库的使用及工程模板的建立STM32学习之旅③ 从点灯到代码移植STM32学习之旅④ USART串口和上位机通信STM32学习之旅⑤ SPI控制TFT,从底层到底层的设计目录: 文章目录一、认识其本质(一)认识SPI(二)常见显示器(三)TFT优势二、所需材料三、底层建筑(一)模拟SPI(二)硬件SPI1、关于NSS
STM32简介分类STM32 从内核上分有 Cortex-M0、M3、M4和 M7 这几种,每个内核又大概分为主流、高性能和低功耗。命名方法以STM32F103VET6 来讲解下 STM32 的命名方法开发板及其原理图博主采用如下开发板进行学习STM32的编程:开发板的原理图如下所示:HAL库一、直接配置寄存器通过汇编语言直接操作寄存器实现功能.STM32的寄存器数量是51单片机的十数倍,如此多的
转载
2023-10-10 10:58:12
111阅读
cmsis全称Cortex Microcontroller Software Interface Standard,就是Cortex微处理器软件接口标准stm32每组gpio有7组端口,分别是2个32位配置寄存器,2个32位数据寄存器,1个32位置位/复位寄存器,1个16个复位寄存器,1个32位锁存寄存器GPIO,general-purpose I/O 通用型输入输出AFIO,Alter
文章目录1. 前言2. 生成 .map 文件3 .map 文件的组成3.1 Section Cross References - 各个源文件之间函数的调用关系3.2 Removing Unused input sections from the image - 移除未使用的模块3.3 Image Symbol Table - 映射符号表:描述各(程序段 / 数据)在存储器中的地址、类型、大小等3
文章目录LittleVGL学习笔记(1)---获取源码实现仿真并移植到STM32一、获取源码二、在visual Studio 上实现仿真三、移植littleVGL 到STM32上总结附录lv_conf.h 源码 一、获取源码注意,以下选用的littleVGL 版本为:v7.7.0提前安装好 Visual Studio 2019安装好 keil MDK在github 上获取源码:https://g
转载
2024-07-30 09:29:52
43阅读
目录标题背景外部IC加密简易MCU端加密MCU端加密优化版ID地址混淆代码混淆校验区混淆固件防修改芯片混淆总结 背景随着嵌入式和物联网的快速发展,越来越多的嵌入式产品推向市场,如何保证产品程序的安全和知识产权不受侵害呢,目前主要有两种方式:MCU端加密和外加加密IC来进行相关的产品和知识产权保护。 最近跟几个朋友讨论了以下相关加密的技巧,在这里分享一下。外部IC加密一般来说就是,在主控芯片和加密
任务:输入捕获 脉冲测距。 STM32 的定时器,除了 TIM6 和 TIM7,其他定时器都有输入捕获功能。 STM32定时器检测是否有信号,若有信号(上升沿),则定时器开始计时,直至检测到下降沿计时
以下以STM32F407ZGT6为例说明。 STM32是32位的芯片,意味着有从0x00000000~0xFFFFFFFF 4G也就是32位的寻址空间,在设计芯片的时候,采用的是ARM所设计的架构,ST(意法半导体)公司在基于ARM的对芯片添加了自己的外设。注意:这里是一个地址空间存放一个字节,即1Byte ARM规定:Vendor-specific memory 511MB 存放特定厂商的代码
目录O、前言1 个人经验2 软硬件介绍一、六步换相1 新建cubemx工程2 工程基础配置(1)RCC时钟配置(2)SYS 调试接口(3)工程设置,生成MDK工程3 串口(1)cubemx配置(2)printf重映射(3)测试4 霍尔传感器(1)Cubemx配置(2)初始化启动(3)测试定时中断(4)测试霍尔中断4 开环控制(1)普通PWM cubemx配置(2)普通GPIO配置(3)开环控制二
转载
2024-02-20 11:10:50
783阅读
STM32F103是一款由意法半导体(STMicroelectronics)推出的一款微控制器,它采用ARM Cortex-M3内核,拥有丰富的外设和功能,广泛应用于各种嵌入式系统中。而Linux作为一种开源的操作系统,也被广泛应用于各种设备中,包括嵌入式系统。本文将介绍如何在STM32F103上运行Linux系统的相关内容。
首先,需要明确的是,STM32F103虽然是一款功能强大的微控制器,
原创
2024-05-15 10:28:44
466阅读
每组IO口含下面7个寄存器。7个寄存器可以控制一组GPIO的16个IO口。GPIOx_CRL:端口配
原创
2022-06-01 18:34:44
1023阅读
STM32F4的GPIO区别与F1的GPIO配置,每个 I/O 端口位均可自由编程,但 I/O 端口寄存器必须按 32 位字、半字或字节进行访问。 GPIOx_BSRR 寄存器旨在实现对 GPIO ODR 寄存器进行原子读取/修改访问。这样便可确保 在读取和修改访问之间发生中断请求也不会有问题。 &nb
转载
2024-06-06 23:28:57
461阅读
今天是Golang的第三篇,我们一起来看看Golang当中的变量。变量声明Golang当中的变量类型和C/C++比较接近,一般用的比较多的也就是int,float和字符串。Golang当中不一样的地方主要有几点,第一点是严格区分了int,int16,int32和int64,同样区分了float,float32和float64。前文当中说过,Golang是不支持隐式转换的,哪怕是int和int32也
转载
2024-05-18 16:24:59
117阅读
在嵌入式系统领域,STM32F429是一款性能强劲的微控制器,广泛应用于各种领域。而Linux操作系统则是一种轻量级的操作系统,常被用于嵌入式系统中。因此,将Linux移植到STM32F429上,是一个具有挑战性的任务。
在移植Linux到STM32F429的过程中,我们需要考虑到硬件的兼容性、内核的配置、设备树的修改等诸多因素。首先,要确保STM32F429的硬件与Linux操作系统兼容,包括
原创
2024-05-07 11:02:33
382阅读
stm32f4xx.h#define RCC_AHBIENR *(unsigned int*)(0x40023800+0x30)
#define GPIO_MODER *(unsigned int*)(0x
原创
2023-04-05 22:41:32
493阅读
移植的STM32F103VGT6+EMWIN+Ucos3总结1) 开始使用正点原子的代码进行移植的时候发现莫名地卡死2) 通过不断从串口打印输出信息 发现卡死在GUI_Init()函数 == 这里多说两句 知道这个函数卡死后,先要确保LCD是可以点亮的 和 ucosIII是可以运行的==注意 可以进行交叉验证,单独点LCD或跑UcosIII 这两个跑通 看看自己的综合代码(注释掉GUI_init及
转载
2024-06-22 21:20:58
128阅读
1、STM32的中断 STM32的中断管理是属于内核部分的,所以中断管理的寄存器也是属于内核组,不属于芯片外设,在查看相关资料的时候,需要查看相对应的内核手册。 STM32F103ZET6是Cortex-M3内核的IC。Cortex-M3内核支持256个中断,其中包含了16个内核中断和240个外部中断,并且具有256级的可编程中断设置。但是STM32并没有完全使用Cortex-M3内核的全部中
转载
2024-03-22 09:46:50
390阅读