学习心得学习一款单片机步骤:了解有芯片上有哪些硬件资源了解内存映射, 和地址总线时钟体系硬件资源可以让我们知道, 这个芯片都有哪些功能, 内存映射让我们知道, 我们的代码存到了哪里, 运行内存在哪里, 外设寄存器在哪里. 了解时钟体系, 是必要的, 时钟是通信的核心, 是单片机运行的心脏, 如果不了解时钟体系, 通信必然会出现不可预估的问题.STM32F407ZET6这款芯片硬件资源频率: 168
模拟IICIIC协议GPIO配置根据时序图完成代码起始与停止信号等待应答读写字节检查设备是否连接 IIC协议I2C 通讯协议(Inter-Integrated Circuit)是由Phiilps公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要USART、 CAN等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。它是一个支持多设备的总线。“总线”指多个设备共
转载 2024-03-20 14:56:28
178阅读
简介IAP(In Application Programming)即在应用编程, IAP 是用户自己的程序在运行过程中对User Flash 的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。通常实现 IAP 功能时,即用户程序运行中作自身的更新操作,需要在设计固件程序时编写两个项目代码,第一个项目程序不执行正常的功能操作,而只是通过某种通信方式(
转载 2024-05-03 13:40:25
178阅读
STM32的加密思路使用系统启动程序STM32 Flash Loader demonstrator将Flash设置为读保护。 所有以调试工具、内置SRAM或FSMC执行代码等方式对主存储器访问的操作将被禁止,只允许用户代码对主Flash存储器的读操作和编程操作(除了Flash开始的4KB区域不能编程)。用户代码允许自主编程可以实现IAP或者数据存储等功能。 这样破解者将不能用调试工具、内置SRAM
arduino一直以来深受广大极客的喜爱,丰富的库以及外围扩展,但是Atmega328已经比较老旧了,STM32相比而言,性能要比arduino强大了太多,因此我们选择用STM32F103C系列来代替arduino开发下面跟随我们一起在arduino IDE中搭建stm32开发环境吧1硬件准备:STM32F103C8T6 蓝色开发板 x 1(如图) 软件准备:Arduino开发环境操作步
转载 2024-03-01 15:58:39
129阅读
对于STM32,首先我们从其精密性、可靠性以及安全性三个方面来进行说明:精密性:与单片机的外设基本相同,除了其包含了7个DMA(直接存储器访问)通道。每个通道都可以用来在设备与内存之间进行8/16/32位数据的传输。每个设备都可以向DMA控制器发出发送或者接受数据的请求。可靠性:采用硬件来对可靠性进行支持,包括一个低电压检测器,一个时钟安全管理系统和两个看门狗定时器(一个为窗口看门狗,一个为独立看
转载 10月前
79阅读
大家在用stm32库函数的时候几乎都会发现assert_param()这个函数,这个函数是判断参数有没有错误,具体是什么错误呢,我会在后面贴图的。assert_param()这个函数在stm32f10x_conf.h中定义: #ifdef USE_FULL_ASSERT #define assert_param(expr) ((expr) ? (void)0 : assert_failed(
STM32点阵字库-ASII字符集Fang XS.1452512966@qq.com如果有错误,希望被指出前言STM32使用LCD显示时,使用带字库的LCD可以直接用。但是项目上,可能需要多国语言字库,让产品能销售到不同国家。大部分的国家使用英语,一般采用ASII编码,常规做法是用不同的数组来存放不同字体的ASII字库。但是这样有个缺点,就是占RAM内存,STM32跑裸机还好,如果需要RTOS,F
适用COTEX-M3系列的MCU也有两三年的时间了,一直用的是ST的产品,由于开发紧张,时间紧迫,整个过程不求甚解,只要东西能够做出来,也就不关心到底是怎么回事。最近刚好有点时间,在整理之前的软件设计时发现了一些疑惑:使用过STM32系列产品的开发人员都知道,在该款芯片上凡是要使用某一个功能,必须给该功能分配相应的时钟,如何来分配这个时钟资源就成了一个问题:举个具体的例子,以STM32F103X8
在研究生时段时,曾经对STM32进行了学习,在本科时段学习51系列的简单单片机,这种单片机功能比较单一,也没有多外设来使用,在进入研究生阶段由于实验室的关系,接触了PIC系列的单片机,PIC单片机编程比较简单,外设也丰富,完全可以按照数据手册使用起来。这种单片机价格也比较贵,适合在工业场合使用。而在32位的单片机中,STM32比较流行,STM32是使用的ARM内核,不同于51 和PIC,因此学习的
转载 2024-07-12 05:57:39
77阅读
我们在学STM32的时候函数assert_param出现的几率非常大,上网搜索一下,网上一般解释断言机制,做为程序开发调试阶段时使用。下面我就谈一下我对这些应用的看法,学习东西抱着知其然也要知其所以然。 4 断言机制函数assert_param 我们在分析库函数的时候,几乎每一个函数的原型有这个函数assert_param();下面以assert_param(IS_GPIO_ALL_PERIPH(
转载 2024-06-01 09:08:14
98阅读
目的:对运行于STM32的嵌入式代码程序进行加密编译环境:IAR Embedded System for ARM5.5一.STM32Flash组织STM32的Flash包括主存储器(HD版本,512KB)+信息块。信息块包括2KB的系统存储器(用于系统自举启动代码)和16字节的选项字节(8个字节数据+8个字节数据的反码)。 二、STM32读保护STM32读保护是通过设置RDP选项字节,然
转载 2024-04-12 21:15:06
477阅读
使用STM32的芯片的朋友,可以很方便的将移植到GD32上面,下面就具体移植过程分享一下:  整个移植过程可以分为硬件和软件两个方面。  硬件方面:  首先要确定先前所使用ST芯片的flash大小和管脚数量,然后替换成GD相同大小Flash和管脚数量的芯片。  简单来说就是STM32F103xxxx替换成GD32F103xxxx。  GD和ST的命
stm32的加密有很多方法,利用ID号码加密,读保护加密,这些方法都是最常见的方法,也容易被破解。我在想,能不能利用PCB硬件参数的差异,通过校准保存参数,然后让程序严格按照保存的参数去运行,当然要考虑环境(例如温度)对参数的影响,加一些补偿算法。如果没有校准过程,硬件参数偏差大的板子运算精准度很差,甚至运行异常。由于硬件有差异,每块板子校准出来的参数都有偏差,这样即使别人拷贝出Hex文件,放到他
转载 2024-03-18 20:56:20
7阅读
AMBA AMBA(Advanced Microprocessor Bus Architecture)是ARM公司提出的一种开放性的SoC总线标准,现在已经广泛的应用于RISC的内核上了。 AMBA定义了一种多总线系统(multilevel busing system),包括系统总线和等级稍低的外设总线。 AMBA支持32位、64位、128位的数据总线,和32位的地址总线,同时
转载 2024-05-20 07:43:56
181阅读
1、聊一聊    演员这首歌大家应该再熟悉不过了,其中印象最为深刻的歌词是:"简单点,说话的方式简单点......",说话真的是一门技术,同时也是门艺术!    今天跟大家带来的知识不算难,现在非常多MCU都有全球唯一标识码这个东西,可能大家都了解过,不过具体怎么用并没有实际设计过!下面重点对其加密方面的应用跟大家理一理。2、stm32的标识码UID&nbs
2.1 STM32F103xx增强型LQFP48引脚分布 2.2 STM32F103xx概述 2.2.1 ARM®的Cortex™-M3核心并内嵌闪存和SRAMARM的Cortex™-M3处理器是最新一代的嵌入式ARM处理器,它为实现MCU的需要提供了低成本的平台、缩减的引脚数目、降低的系统功耗,同时提供卓越的计算性能和先进的中断系统响应。ARM的Corte
转载 2024-08-06 09:59:40
60阅读
目录一、系统初始化函数执行完毕各时钟的状态二、三类(总线上的)时钟函数2.1、外设时钟使能函数2.1.2、其他时钟源2.2、时钟源和倍频因子配置函数2.3、外设复位函数三、配置函数一、系统初始化函数执行完毕各时钟的状态二、三类(总线上的)时钟函数2.1、外设时钟使能函数void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalStat
一.STM32Flash组织STM32的Flash包括主存储器(HD版本,512KB)+信息块。信息块包括2KB的系统存储器(用于系统自举启动代码)和16字节的选项字节(8个字节数据+8个字节数据的反码)。 二、STM32读保护STM32读保护是通过设置RDP选项字节,然后在系统重新复位加载了新的RDP选项字节后启动的。当保护字节被写入相应的值以后:●通过从内置SRAM或FSMC执行代码
  本篇文章带着大家来认识一下 STM32 的时钟系统,以及利用 systick 定时器来实现一个比较准确的延时。  我们首先从时钟说起,时钟在MCU中的作用,就好比于人类的心脏一样不可或缺。STM32 的时钟相比 51 的单一时钟要复杂些,它有多个时钟源可以使用,那么大家可能会有所疑惑,STM32 的时钟搞的那么复杂干什么,原因其实在于,STM32的外设资源比起51来说,是很丰富的,那么不同外设
  • 1
  • 2
  • 3
  • 4
  • 5