推荐阅读最新更新时间:2024-03-16 16:05
Arm®v7-M 架构的 STM32 如何启用 DWT进行计数
01 前言 客户在使用 STM32H7 的时候,想要使用 DWT 计数来测量代码执行时间,评估执行效率。客户发现在重新上电或 reset 后,无法启用 DWT 进行计数。 02 调研 在 ARMv7-M 架构中有个 DEMCR 寄存器,这个寄存器可以控制 DWT 的使能。在power-on reset 后这个寄存器所有位的值都为 0。而当 bit 为 0 时,DWT 和 ITM 模块都是 disabled 的。所以为了启用 DWT 模块,必须将 DEMCR 的 bit 置为 1。如图 1 所示: 图1.DEMCR 寄存器 03 启用 DWT 进行计数 STM32H7 基于 Arm Cortex-M7 内核
[单片机]
stm32不小心把SWD和JTAG都给关了,程序下载不进去,解决办法
我们有时候会碰到各种问题导致STM32或者STM8的程序突然就下载不进去板子了。可以按照以下步骤来解决。 一、下载方法步骤: 1、将板子供电全部断开,这里包括3.3V电源供电和JLINK等所有能给开发板供上电的设备全断开。 2、找到BOOT0引脚,将BOOT0拉高。 方法:在板子上找一个高电平引脚,手动用导线将BOOT0连接到该引脚上即可。 (注意:我的STM32板子供电是3.3V的,所以我找了一个3.3V的引脚,用导线连接到了BOOT0上,千万别弄错了,电平接高了不小心可是要烧坏板子的!) 3、BOOT0拉高以后,保持这个姿势不要动,打开电源,重新给板子上电。 4、插上JLink或者STLink,下载程序。一般这次肯
[单片机]
stm32问题:关于BOOT0和BOOT1
BOOT0和BOOT1 STM32三种启动模式对应的存储介质均是芯片内置的,它们是: 1)用户闪存 = 芯片内置的Flash。 2)SRAM = 芯片内置的RAM区,就是内存啦。 3)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区 域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区。 在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执 行程序,见下表: BOOT1=x BOOT0=0 从用户闪存启动,这是正常的工作模式。 BOOT1=0 BOOT0=1
[单片机]
STM32的map文件学习笔记
前言 前几个月针对公司自己的芯片写了个程序,这个程序有个硬性要求,就是能用的FLASH空间只有4KB,之前已经写得差不多了,最终占用空间3.6KB。 这不,最近又得加需求,还剩一点点FLASH空间可以使用,这该如何是好。需求已经加过来了,不行也得行啊。所以就得去优化之前的代码了,这就得研究比较底层的东西了。 我们的芯片与其它的MCU芯片用起来都差不多一样。我们在用ST的时候,编译完成,会生成很多文件,其中有一个.map文件,里面包含的信息就是工程 ROM/FLASH 和 RAM 的占用情况 。 之前只是关心.map文件的最后几行的 ROM/FLASH占用信息,如: 这次就得认真的学习一下这个文件了,只有清楚的知道这
[单片机]
STM32的FSMC详解
STM32的FSMC真是一个万能的总线控制器,不仅可以控制SRAM,NOR FLASH,NAND FLASH,PC Card,还能控制LCD,TFT. 一般越是复杂的东西,理解起来就很困难,但是使用上却很方便,如USB. 不过FSMC也有很诡异的地方.如 *(volatile uint16_t *)0x60400000=0x0; // 实际地址A21=1,而非A22. *(volatile uint16_t *)0x60800000=0x0; // 实际地址A22=1,而非A23 为什么呢?那时我还以为软件或硬件还是芯片有BUG, 我就是从上面的不解中开始研究FSMC的….. 1.FSMC信号引脚 S
[单片机]
STM32 串口中断设置
我们基于之前的串口配置的那篇文章 来完成今天使用串口中断来控制led 灯的亮灭 首先我们要知道为什么要使用中断 使用中断 能高效的去执行程序,不会一直占用MCU的资源。 对于中断的介绍 可以看我之前关于中断的那篇文章 开始进入正题 我们如何配置串口中断 由于之前我们已经在user 这个文件夹下添加过这个文件了 所以我们直接在配置串口的那一个文件下 进行配置 首先 我们先配置 NVIC_InitTypeDef 这个结构体 uint8_t NVIC_IRQChannel; 中断分组 uint8_t NVIC_IRQChannelPreemptionPriority 抢占优先级 uint8_t NVIC_IRQChannel
[单片机]
ST推出新系列STM32微控制器 为物联网设备提供创记录的处理性
STM32 H7新系列产品成为ARM Cortex -M内核微控制器性能新标杆 大容量片上存储器,丰富的通信外设,为物联网设备提供先进安全服务 中国,2016年10月21日 横跨多重电子应用领域、全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)推出新的运算性能创记录的STM32H7系列微控制器。新系列内置STM32平台中存储容量最高的SRAM(1MB)、高达2MB闪存和种类最丰富的通信外设,为实现让智慧更高的智能硬件无处不在的目标铺平道路。 意法半导体自主研发的非常先进的40nm芯片制造工艺,结合产品架构创新,使新系列产品运算性能
[单片机]
STM32串口通信过程详解
按照数据传送方向分类: 单工:数据传输只支持数据在一个方向上传输; 半双工:允许数据在两个方向上传输。但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;它不需要独立的接收端和发送端,两者可以合并一起使用一个端口; 全双工:允许数据同时在两个方向上传输。因此,全双工通信是两个单工通信方式的结合,需要独立的接收端和发送端。 分别如下图中的a、b、c所示: 按照通信方式分类: 同步通信:带时钟同步信号传输。比如:SPI,IIC通信接口; 异步通信:不带时钟同步信号。比如:UART(通用异步收发器),单总线; 在同步通讯中,收发设备上方会使用一根信号线传输信号,在时钟信号的驱动下双方进行协调,同步数
[单片机]