Jet_99
码龄4年
求更新 关注
提问 私信
  • 博客:23,109
    23,109
    总访问量
  • 18
    原创
  • 112
    粉丝
  • 143
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:浙江省
加入CSDN时间: 2022-06-11
博客简介:

m0_71918616的博客

查看详细资料
个人成就
  • 获得171次点赞
  • 内容获得28次评论
  • 获得126次收藏
  • 代码片获得357次分享
  • 博客总排名643,143名
创作历程
  • 4篇
    2025年
  • 14篇
    2024年
成就勋章

TA关注的专栏 9

TA关注的收藏夹 0

TA关注的社区 7

TA参与的活动 0

兴趣领域 设置
  • 嵌入式
    stm32
创作活动更多

1024 程序员节 · 高效创作之道活动征文

1024 程序员节来啦!今年我们邀请你用创作记录高效之道——**写一篇博文,分享你的创作经验、效率技巧或技术干货**,就有机会获得专属好礼。 **特别玩法**: - 🏆 一二三等奖不限方向,自由创作与墨衍相关创作均可参评——自由创作方向获奖者拿**卫衣/马克杯/流量券** - ✨ 如果你在创作中体验了**墨衍**(AI 创作、多平台同步、GEO 检测)并写下真实体验,你的投稿将进入**「墨衍专属创作奖」独立评审赛道**——按墨衍结合深度等专属标准**优中选优**,再拿 7 天体验卡! - 🎁 一二三等奖中的墨衍方向获奖者,同步获得墨衍 7 天体验卡! 创作方向 ### 🚀 墨衍相关创作(推荐 · 专属奖独立评审赛道) - **墨衍使用体验**:AI 创作 / 多平台同步 / GEO 检测的真实体验复盘 - **墨衍场景教程**:选题 → AI 写文 → 多平台同步 → GEO 优化一站式实操 - **墨衍 × 多平台分发**:一次创作多平台发布的效率对比与数据复盘 - **墨衍 × 1024 案例**:用墨衍辅助完成一篇 1024 主题文章的完整过程 > 投稿即进入「墨衍专属创作奖」独立评审赛道(10 名 · 7 天体验卡),不与一二三等奖合并评选,优中选优! ### ✍️ 自由创作(不限题材) 技术干货、职业成长、行业观察、程序人生……符合社区规范即可。

1323人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

STM32(H7)学习记录-13 FMC连接norflash(JS28F256P30TFE)

我这里不使用写保护(WP#)以及 VPP我是直接连接VCC,可以查看这个芯片手册进行别VPP的操作。使用STM32H7S7的FMC连接norflash 原理图如下(原理图修改了几次,画的不怎么规整)注意这里的NOR/PSRAM timing的参数我在MDK中另外设置了。另外 我设置了FMC 中的norflash这块内存不使用 Cache。写之前需要进行block解锁,上电默认是锁住的!生成的MDK文件中修改了一些FMC参数 如下。值得注意的是,在这个器件中。block的大小不是一致的。
原创
博文更新于 2025.06.09 ·
691 阅读 ·
4 点赞 ·
9 评论 ·
1 收藏

STM32(H7)学习记录-16 H7S7_LTDC

根据 RCC 寄存器的值更新 SystemCoreClock 变量,并且这个函数是使用CubeMX(6.14.0)配置的(软件包STM32Cube FW_H7RS V1.2.0)。这里我使用的是安富莱的屏(RGB888)使用RGB565控制。但是我的项目中并没有更改RCC寄存器,使用了这个函数后时钟异常。使用H7S7跑LTDC时,发现屏幕一直不显示颜色,仅亮。在注释掉这个函数后LTDC正常显示。在排查问题后,发现罪魁祸首是。
原创
博文更新于 2025.03.23 ·
391 阅读 ·
4 点赞 ·
0 评论 ·
0 收藏

STM32(H7)学习记录-15 FMC_Norflash的FLM

再往后就是修改FlashDev.c的内容以及实现FLashPrg.C中的函数。在system_stm32xxxx.c中可以把SCB->VTOR那一行注释掉。最终是能完成烧录,但会显示Verify Fail,但是查看数据是对的,这里可以把Verify函数默认返回成功。2.注意变量的地址,可以从map文件查看,发现一些变量地址有冲突,我自己定义了一个不使用的空buffer。3.一些全局变量并不是0初始化,因此,在一些初始化中会出现错误,比如下面这个(我选择了注释掉)1.使用HAL库的话,一些函数需要重定向。
原创
博文更新于 2025.02.19 ·
639 阅读 ·
4 点赞 ·
0 评论 ·
3 收藏

STM32(H7)学习记录-14 XSPI连接DDR SDRAM(HyperBus)

主控芯片是STM32H7S7 ,HyperBusRAM芯片是W956D8MBYA5I。*DQS0(这个引脚是作为RWDS)使用的CubeMX版本是6.13.0。
原创
博文更新于 2025.02.09 ·
1064 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

STM32(H7)学习记录-12 STM32H7S7 USB Composite Device MSC 与 CDC

但是,生成代码后发现一个问题,MSC只要一加上就有问题,不加MSC,只有CDC_ACM就是正确的。对于STM32来说 IN 和 OUT是可以重复的,比如端点1的 IN / OUT, IN为 0x81,OUT为0x01。一、在usb_otg.c文件中 对于hpcd_USB_OTG_HS(hpcd_USB_OTG_FS)变量需要定义在内部ram,最好是AXI ram!记得查看 Fifo最大是多少,我看了 H743 H7S7的都是4K。IN端点,则是一对一,这个内容可以在芯片的参考手册中查看!
原创
博文更新于 2024.09.17 ·
1577 阅读 ·
13 点赞 ·
0 评论 ·
5 收藏

STM32(H7)学习记录-11 bootloader+app使用cubeMX配置

cubemx版本6.11.1。基于U盘的bootloader目录一、bootloader二、app一、bootloader 使用cubeMX配置(这里就不描述MPU,时钟等配置了)主要是配置USBH_MSC并使用FatFs作为文件管理系统。并且配置了硬件CRC校验然后进入MDK中,其中g_JumpInit变量,包括跳转函数是参考安富莱 的程序的,请参考实战技能分享,一劳永逸的解决BOOT跳转APP失败问题,含MDK AC5,AC6和IAR_哔
原创
博文更新于 2024.07.23 ·
2522 阅读 ·
19 点赞 ·
0 评论 ·
22 收藏

STM32(H7)学习记录-10 一些(调试)记录

在生成文件时,要生成boot + application (extmemloader不生成是因为,我用了官方的flm文件,如果不用的话可以生成,在mdk里面编译一下 会生成一个 flm文件)既然要使用外部flash就会涉及到烧录算法了,当然,如果使用官方的板子的话,就可以使用官方提供的文件了。由于H7S7的内部(用户)flash只有64KB,如果多使用几个库(比如,usb库),那么内部flash肯定是不够的,因此,需要使用外部flash。最后,在烧录这边添加你的flm算法(我用的是st官方提供的)。
原创
博文更新于 2024.07.05 ·
748 阅读 ·
5 点赞 ·
0 评论 ·
3 收藏

STM32(H7S7)学习记录-9 (XSPI)Octal_flash内存映射

free running clock :手册里面的解释(翻译了一下)→自由时钟 自由时钟(free running clock),即运行时时钟频率、占空比等不随时间发生变化的时钟,通俗来讲线上一直有稳定的时钟信号,比如 I2S 的MCLK、BCLK 非自由时钟 非自由时钟(Non-free running clock),即在运行时,时钟信号不是稳定产生的,只有发送、接受数据时才需要时钟信号,比如 I2C 、SPI 的时钟信号。在写入时,NCS每次时钟周期+1进行刷新,在读取时,每时钟周期+4进行刷新。
原创
博文更新于 2024.06.24 ·
4408 阅读 ·
45 点赞 ·
5 评论 ·
26 收藏

STM32(H7S3)学习记录-8 RCC

看了手册 发现H7S3的HSI时钟频率为64M,那么64M/300/500=427 ,就发现问题了,cubemx生成的例子居然没有配置RCC(即使我在cubemx里面选择了,也不会生成),仅仅是在HAL_init之前有一个 SystemCoreClockUpdate();最近买了一块ST的nucleo H7S3L8H6的板子,到手之后跑了一个threadx的小程序,但发现tx_thread_sleep(1000) 这里我的每秒节拍数也是1000,但我发现真正运行起来 这个APP并不是1秒执行一次。
原创
博文更新于 2024.06.21 ·
585 阅读 ·
8 点赞 ·
0 评论 ·
1 收藏

STM32(H7)学习记录-7 FatFs & Hard fault

查找了很多一直没解决,开始我认为是我程序别的问题,比如数组溢出什么的,但是查找了几天,把大部分中断都关了,堆栈设置到0x10000 也无济于事。因此,当访问完一个块,需要通过FatFs结构体的得知下一个 地址,而,此时FatFs结构体若是局部变量就会使 芯片进入 硬件错误。8192字节应该是 一个块大小。最近在跑程序时,发现访问文件字节多了就会出现硬件错误(0xffff fff1),在debug模式下,想要查找问题,但是一直无果。我的FIL结构体是全局变量,但是FatFs并不是全局变量,是一个局部变量。
原创
博文更新于 2024.05.28 ·
614 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

STM32(H7)学习记录-4 串口不定长收发

需要去访问 rx_buffer,如果你开了cache,上电第一次是读未命中,就去rx_buffer地址下读。之后的访问,就是读命中了,你就会发现 发送的数据 一直都是第一次的数据不变。HAL_UARTEx_ReceiveToIdle_DMA (在stm32h7xx_hal_uart_ex.c,如果没有这个文件 就是HAL库比较老了)测试中 串口接收数据量大的时候,如果不开双buffer(一个存数据,一个发数据) 会丢数据!最近需要做一个串口不定长收发,比如串口1的RX接收,然后使用串口3的TX发送。
原创
博文更新于 2024.05.23 ·
1088 阅读 ·
10 点赞 ·
0 评论 ·
10 收藏

STM32(H7)学习记录-6 脉冲跟随(v2)

当外部脉冲输入到 TIM12的TI2FP2引脚,触发(上升/下降沿都触发)TIM12的计数,但配置TIM12是单脉冲,即输出一个脉冲后就关闭计数。DMA配置的是 下降沿触发,因此,会触发一次DMA (将buffer的数据搬运到 GPIOx->BSRR)有时候,我们需要对一个输入脉冲进行跟随输出脉冲(一个脉冲输入,一个或者多个脉冲输出,IO资源不丰富,且不能占用太多CPU资源的情况下)200KHz脉冲下,效果也还可以(粉色是输入脉冲,绿色是输出脉冲)触发源选择 TI2FP2(上升/下降沿都触发)
原创
博文更新于 2024.05.14 ·
668 阅读 ·
4 点赞 ·
2 评论 ·
6 收藏

STM32(H7)学习记录-5 NVIC

An interrupt can enter pending state even if it is disabled. Disabling an interrupt only prevents the processor from taking that interrupt.(ST 编程手册 PM0253, P151)注意:禁止中断后,系统滴答中断会被屏蔽,此时,程序中若出现HAL_Delay 这样的函数会卡死!在测试时,发现在禁止中断时,触发一个中断,不会被执行。此时,使能中断后,就会执行这个中断。
原创
博文更新于 2024.05.12 ·
404 阅读 ·
9 点赞 ·
1 评论 ·
1 收藏

STM32(H7)学习记录-1 FMC

对于存储器宽度为16位时,(个人理解)stm32一个地址下的是一个字节(8bit),因此,26位地址是512Mbit,映射到外设上也是512Mbit,因此可以计算得到地址线数量=512Mbit/16=2^25,一种处理就是使用ADDR[25:1]。比如,NE1的地址是0x60000000,外部存储器宽度是32bit,则地址ADDR[25:2],此时,FMC_A[0](ADDR[2])连接外部存储器地址A[0]。复用到io引脚上地址引脚ADDR[25:0],共计26路地址。对于存储器宽度为32位时,类同。
原创
博文更新于 2024.04.15 ·
1261 阅读 ·
8 点赞 ·
0 评论 ·
10 收藏

STM32(H7)学习记录-3 CANFD

话说 TJA1043 数据手册上标明了 最大5Mbps,但实际测试只有3Mbps多一些,也许是电路问题,传输速度与数据手册差的还是有点大。可以看到最新的hal库底层已经对数据长度做了 <<16 ,我们在发送函数中上就不用 <<16。最近在配置完成 CANFD的程序。其实,应该使用HAL库自带的 参数 这样就可以避免这个问题了,而不是自己 手打一个数字。所使用的主控芯片是STM32H743IIT6,所使用的CAN芯片是 TJA1043。下图是 我用CUBEMX配置的CANFD例程中的 数据长度 宏定义。
原创
博文更新于 2024.04.15 ·
962 阅读 ·
6 点赞 ·
1 评论 ·
1 收藏

STM32(H7)学习记录-2 脉冲跟随

TIM12脉冲作为触发输入,DMA1将GPIOx->IDR搬到buffer,buffer再到GPIOy->ORD。(不过BDMA似乎可以实现 外设到外设 具体还没尝试)参考:安富莱H7-BSP DMAMUX的定时器触+DMA双缓冲控制任意IO做PWM和脉冲数控制例程。最近在遇到了一个使用环境,需要在某个IO输入脉冲信号 并且跟随输出脉冲信号。buffer 必须是 DMA1 可访问的地址(DMA2也可) ,因此,要设置。因此,采用的思路是dmamux 中的 触发输入,从而产生请求。在几百KHz下效果还凑合。
原创
博文更新于 2024.04.09 ·
597 阅读 ·
6 点赞 ·
1 评论 ·
0 收藏

MARLIN固件-笔记1(地址偏移)

一些marlin固件的笔记
原创
博文更新于 2024.02.25 ·
523 阅读 ·
3 点赞 ·
1 评论 ·
2 收藏

simulink中安装STM32硬件支持包

二:运行所下载的SupportSoftwareDownloader_R2023b_win64.exe。三:找到matlab目录下的install_supportsoftware.exe。安装完成可以在simulink 库中查看(如果已经打开这matlab记得重开软件)打开文件夹里面有一个R2023b(我用的是matlab2023b)下面有一个。在输入以下指令 安装,-archives 后面跟的是archives地址,一般在\MATLAB\R2023b\bin\win64。选择你的matlab版本。
原创
博文更新于 2024.02.19 ·
4266 阅读 ·
17 点赞 ·
7 评论 ·
34 收藏
加载更多