Z小旋
码龄4年
  • 3,009,563
    被访问
  • 119
    原创
  • 709
    排名
  • 18,493
    粉丝
关注
提问 私信

个人简介:.

  • 加入CSDN时间: 2018-10-22
博客简介:

Z小旋

博客描述:
让自己变得优秀,才能遇见更优秀的人
查看详细资料
  • 9
    领奖
    总分 14,175 当月 671
个人成就
  • 获得19,075次点赞
  • 内容获得2,041次评论
  • 获得56,068次收藏
创作历程
  • 21篇
    2022年
  • 16篇
    2021年
  • 31篇
    2020年
  • 51篇
    2019年
  • 1篇
    2018年
成就勋章
TA的专栏
  • 【通信协议】
    12篇
  • 【STM32】
    46篇
  • 【传感器专栏】
    7篇
  • 【嵌入式学习】
    15篇
  • 【硬件电路设计】
    2篇
  • c语言学习
    15篇
  • Shell
    4篇
  • 图像处理
    6篇
  • JAVA
    2篇
  • Modbus
    2篇
  • Hexo
    1篇
  • 数字电子技术
    2篇
  • NXP智能车学习
    5篇
  • Arduino
    2篇
  • Altium designer
    4篇
  • MATLAB
    1篇
  • SQL server
    2篇
  • LCD12864
    2篇
  • 日常随记
    6篇
  • Python学习
    8篇
  • 环境搭建
    2篇
兴趣领域 设置
  • 嵌入式
    嵌入式硬件
  • 硬件开发
    硬件工程arm开发pcb工艺
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

单片机测量代码运行时间方法-STM32

在实际程序的编写中,我们经常会对程序进行一个整体的复盘、优化,或者对算法的运行时间进行测量等等,那么怎么精确的测量我们程序的运行时间呢?下面我们给出几种方法:1 使用Keil Debug功能2 使用逻辑分析仪或示波器等设备测量3 使用STM32自带定时器进行测量1 使用Keil Debug功能我们可以使用J-LINK或者ST-link 等仿真器,实现对代码运行时间的测量,首先要设置仿真器仿真的实际频率首先点击Settings设置然后点击Trace 设置我们芯片的系统频率,点击Teac
原创
发布博客 2022.03.31 ·
6623 阅读 ·
35 点赞 ·
6 评论

【STM32】HAL库 STM32CubeMX教程十五---FMC-SDRAM(二)

前言:本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用上一讲我们说了CubeMX配置SDRAM的一些基本配置,还有FMC跟SDRAM的讲解,这一讲我们来说下SDRAM的初始化流程跟HAL库的SDRAM函数使用所用工具:1、芯片: STM32H743II2、STM32CubeMx软件V6.4.03、IDE: MDK-Keil5软件4、STM3H7xxHAL库5、W9825G6KH知识概括:通过本篇博客您将学到:SDRAM+FMC的基本
原创
发布博客 2022.03.29 ·
1045 阅读 ·
4 点赞 ·
1 评论

【STM32】HAL库 STM32CubeMX教程十五---FMC-SDRAM(一)

并行总线接口FMCFMC(Flexible memory controller,灵活动态存储器)FMC可连接SRAM(异步或同步)、SDRAM、NORFLASH、PC卡、NANDFLASH.支持突发模式,可编程时钟,8位、16位、32位宽的数据总线。FMC有6个存储区域,每个区域支持256MB的寻址空间。...
原创
发布博客 2022.03.28 ·
2091 阅读 ·
7 点赞 ·
3 评论

STM32 FMC原理详解

中讨论了FSMC的基本用法,今天来说说FMC。虽然跟FSMC相比,FMC只是少了一个S,但应用难度可是大大增加了。对于连接片外RAM而言,FSMC接的是静态RAM,FMC接的是动态RAM,而控制动态RAM要复杂得多。举个例子:动态RAM需要不停地(周期性的)刷新,否则RAM中的数据就会丢失,这就产生了“管理”问题,如果用一个MCU来连接DRAM,二者之间交换的就不只是数据(SRAM就是如此)那么简单了,还包含有控制信息。这样,DRAM中除了存储数据的单元,还需要有寄存器(模式寄存器,后面将详述)、还得有个
原创
发布博客 2022.03.28 ·
1993 阅读 ·
6 点赞 ·
0 评论

STM32CubeMx配置H7时钟: Frequency searched for is out of range for this vos range

配置时钟树的时候主频想设置到400Mhz,点击快速设置,按下回车,出现了Frequency searched for is out of range for this VOS range但是这个问题在CubeMx 6.1.1中就没有出现,刚装的6.4.0就报错
原创
发布博客 2022.03.28 ·
732 阅读 ·
2 点赞 ·
0 评论

STM32 FSMC/FMC原理保姆级讲解(二)

每个模式的时序略有不同,我们这里以常用的模式A为例进行说明:先来认识如下几个关键参数:1.FSMC信号引脚STM32的管脚排列很没有规律,而且分布在多个不同端口上,初始化要十分小心.需要用到的引脚都要先初始化成”复用功能推挽输出”模式.(GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP )并且开启时钟 (RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOx, ENABLE); ) 像STM32F103Z(144脚)芯片有独
原创
发布博客 2022.03.26 ·
6317 阅读 ·
6 点赞 ·
1 评论

STM32 FSMC/FMC原理保姆级讲解(一)

FSMC全称“静态存储器控制器”,STM32可以通过FSMC与SRAM、ROM、PSRAM、Nor Flash和NandFlash存储器的引脚相连,从而进行数据的交换。FSMC的特点:1、 FSMC的一大特点是支持不同位宽的异步读写操作。2、 FSMC的映射地址空间中,不同的BANK是独立的,可用于扩展不同类型的存储器。当FSMC同时使用多个外部存储器时,FSMC会通过总线悬空延时时间参数,来防止访问冲突发生。3、 支持代码从FSMC扩展的外部存储器中直接运行。不需要首先调入内部SRAM。...
原创
发布博客 2022.03.26 ·
8967 阅读 ·
34 点赞 ·
0 评论

ILI9341液晶LCD彩色显示原理

本篇文章带你了解下IL9341的基本原理及工作模式,让你对液晶屏有一个更直观的认识首先我们要知道什么是LCD屏:LCD ( Liquid Crystal Display 的简称)液晶显示器。经常会听到液晶电视,液晶显示屏,那么到底什么是液晶呢?LCD发光原理首先要知道:液晶:液晶是液态晶体,是一种几乎透明的物质,是不能发光的光源:LCD屏幕的光来自于屏幕最下面的背光板发出的光源偏光片:一种镜片,只有特定方向的光线(垂直偏振光)才能通过,而其它方向的光线不能通过两块偏光片的
原创
发布博客 2022.03.25 ·
1211 阅读 ·
3 点赞 ·
1 评论

STM32--MPU内存保护单元(二)

上一篇我们说了MPU内存保护单元的基本原理跟寄存器,这一篇我们来说下HAL库的函数及基本配置本章说的一些HAL库参数,请参照上篇寄存器说明部分:STM32–MPU内存保护单元(一)首先我们来看一下在stm32h7xx_hal_cortex.h中的MPU_Region_InitTypeDef MPU初始化结构体该结构体参数如下:typedef struct{ uint8_t Enable; //区域使能/禁止 uint8_t Number; //区域编号 uint32_t BaseAd.
原创
发布博客 2022.03.23 ·
1343 阅读 ·
3 点赞 ·
1 评论

STM32--MPU内存保护单元(一)

先说明一下MPU,MPU有很多含义,我们常见的有:MPU:Memory Protection Unit,内存保护单元(本文描述的内容);MPU:Microprocessor Unit,微处理器;MPU-6050 陀螺仪 跟这个就更是差了十万八千里了所以请不要搞混MPUMPU,即内存保护单元,可以设置不同存储区域的存储器访问特性(如只支持特权访问或全访问)和存储器属性(如可缓存、可缓冲、可共享),对存储器(主要是内存和外设)提供保护,从而提高系统可靠性通过这些规则可以实现如下功能◆ 防止不受信
原创
发布博客 2022.03.23 ·
1811 阅读 ·
0 点赞 ·
1 评论

STM32H7---高速缓存Cache(二)

上一讲我们说了cache的一些基本原理,这一讲我们来说说H7的cache配置首先来看下H7的默认内存地址映射范围:其中,WT 表示 Write-through(透写),WB 表示 Write-back(回写),WA 表示 Write-allocate(写分配),没有明确标注 WA 的就是 RA(读分配)。XN 的意思是 Execute-Never, 其含义为如果相应的地址空间是 XN,是绝不允许执行代码的。存储器类型为 Normal 的才能使用 cache,并且 TCM 接口是 not cachea
原创
发布博客 2022.03.23 ·
1515 阅读 ·
4 点赞 ·
0 评论

STM32H7---高速缓存Cache(一)

引言:在使用STM32H7 跟F7系列芯片的时候经常看到第一句初始化就是Cache_Enable(); //打开L1-Cache//使能CPU的L1-Cachevoid Cache_Enable(void){ SCB_EnableICache();//使能I-Cache SCB_EnableDCache();//使能D-Cache SCB->CACR|=1<<2; //强制D-Cache透写,如不开启,实际使用中可能遇到
原创
发布博客 2022.03.22 ·
1003 阅读 ·
5 点赞 ·
1 评论

STM32H7时钟树RCC分析--- CubeMx配置(三)

前言:之前我们说了H7的时钟原理,还有HAL库的时钟配置代码,下面我们来看下CubeMx怎么配置STM32H7时钟树RCC分析—原理讲解(一)STM32H7时钟树RCC分析— HAL库配置(二)所用工具:1、芯片: STM32H743II2、STM32CubeMx软件V6.1.03、IDE: MDK-Keil5软件4、STM3H7xxHAL库1设置RCC时钟2时钟源设置cubemx的时钟设置有很多,最简单的就是我们直接选择好时钟源HSE 然后设置系统时钟频率直接按回车,软件会自动配
原创
发布博客 2022.03.21 ·
2253 阅读 ·
1 点赞 ·
5 评论

STM32H7时钟树RCC分析---原理讲解(一)

STM32 有很多系列,可以满足市场的各种需求,从内核上分有 Cortex-M0、M3、M4和 M7 这几种,每个内核又大概分为主流、高性能和低功耗。F1 代表了基础型,基于Cortex-M3 内核,主频为 72MHZ,F4 代表了高性能,基于 Cortex-M4 内核,主频 180M,F7 代表了高性能,基于 Cortex-M7 内核,主频 216M。H7 代表了超高性能,基于 Cortex-M7 内核,主频400M除了内核的不同之外H7与F4区别在于1、H7允许更大的外部时钟输入,可以达到.
原创
发布博客 2022.03.21 ·
4601 阅读 ·
5 点赞 ·
5 评论

STM32H7时钟树RCC分析--- HAL库配置(二)

上一讲我们说了H7时钟树的一些基本概念,现在的话我们来用HAL库和CubeMx配置一下
原创
发布博客 2022.03.21 ·
788 阅读 ·
4 点赞 ·
0 评论

STM32CubeMx6.4.0版本+JRE安装包

发布资源 2022.03.18 ·
rar

SI,PI,EMC/EMI和RF-电路设计名词讲解

在高速PCB设计和硬件面试中,经常能听到这几个词,那么他们具体是什么意思呢?SI指Signal Integrity 即信号完整性。PI指Power Integrity 即电源完整性。EMC指Electromagnetic Compatibility 即电磁兼容。EMI指Electromagnetic interference 即电磁干扰RF指Radio Frequency 即射频。信号完整性信号完整性是指在高速电路设计中由互连线所引起的所有问题。信号具备信号完整性是.
原创
发布博客 2022.03.17 ·
947 阅读 ·
3 点赞 ·
0 评论

高,低电平复位电路原理及加电容的作用

什么是复位为什么要加复位?高电平上电复位低电平上电复位高电平按键复位低电平按键复位什么是复位单片机复位电路的作用是:使单片机恢复到起始状态,让单片机的程序从头开始执行,运行时钟处于稳定状态、各种寄存器、端口处于初始化状态等等。目的是让单片机能够稳定、正确的从头开始执行程序。为什么要加复位?数字电路中寄存器和 RAM 在上电之后默认的状态和数据是不确定的,如果有复位,我们可以把寄存器复位到初始状态,RAM 的数据可以通过复位来触发 RAM 初始化程序逻辑如果进入了错误的状态,通过复位可以把所有的.
原创
发布博客 2022.03.16 ·
9215 阅读 ·
19 点赞 ·
1 评论

STM32CubeMx 6.1.1版本+JRE安装包

发布资源 2022.03.16 ·
zip

数组名不等于指针---sizeof()函数求数组大小错误问题

前言: 今天在项目中需要求采样点的数量并且遍历,采样点用数组存储,自定义了一个函数想要用sizeof求其长度,然后遍历,结果失败了,查阅之后发现以下问题:在main函数中,sizeof是可以正常工作的#include <stdio.h>int Number[10]; int main(){ int size = sizeof(Number); printf("数组大小为:%d
",size); int len = sizeof(Number)/sizeof(int).
原创
发布博客 2022.03.15 ·
535 阅读 ·
4 点赞 ·
0 评论
加载更多