你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

st-img
chrome
st-img
firefox
st-img
safari
st-img
ie8及以上
shequ.stmicroelectronics.cn
  • ST意法半导体官网
  • STM32中文官网
  • ST全球论坛
登录/注册
  • 首页
  • 技术问答
  • 话题
  • 资源
  • 创客秀
  • 视频
  • 标签
  • 积分商城
  • 每日签到
Ha~ha~

Ha~ha~

 

回答数 0 关注数 0
关注 私信
  • 动态99
  • 提问
  • 回答0
  • 创客秀 0
  • 分享 0
  • 关注0
3 回答

CUEBIDE生成的APP程序,在写入FLASH之后无法正常跳转。

STM32F4 STM32CubeIDE
xmshao xmshao 回答时间: 2025-4-18 09:10

你不妨确认下栈顶位置、程序存放位置。这些都是在ld文件里的内容。 _estack = ORIGIN(RAM) + LENGTH(RAM); RAM    (xrw)    : ORIGIN = 0x20000000,   LENGTH = xxK ROM    (rx)    : ORIGIN = 0x08008000,   LENGTH = yyK 然后,检查VTOR的偏移配置,比方:#define VECT_TAB_OFFSET 0x8000 再就是跳转前将中断使能都 禁用掉、保证跳转前没有未处理的中断请求、跳转过程中不会有中断请求发生。 保险起见,跳转前将PLL 也关闭掉。或者在APP端的SystemClock_Config()之前先调用下HAL_RCC_DeInit();

赞1
0 回答

有关Cubeide IAP 问题

STM32F4 STM32CubeIDE J-LINK
2 回答

STM32F407 Flash 写入数据失败

STM32F4
废鱼 废鱼 回答时间: 2024-12-5 18:42

擦除之前是否进行了擦除操作,另外,擦除的时候尽量关闭一下中断功能。

赞1
2 回答

STM32 Bootloader提问

STM32F4 UART
xmshao xmshao 最优答案 回答时间: 2024-11-25 14:14

通常,我们做IAP设计时使用 两个相对 独立的工程,分别是BOOTLOADER和APPLICATION区。 前者重点是接收固件代码、完成Flash编程。后者通常是实际的用户功能性应用程序代码。 显然,很多外设,比方UART/TIMER/GPIO以及核外设NVIC,可能在BOOT区和APP区都会用到。 但各用各的,配置及初始化也是根据当前工程需要具体配置,外设配置、变量定义跟在另外一个 运行区没有关联。 具体点说,即使同一个UART,BOOT区可以配置8bit 115200,APP区可以配置为7位 9600。两个代码区的UART收发 缓冲定义其实也是各自定义、各不相干。 一般来讲,中断矢量表位置也是各定义各的。即不同代码区的中断矢量入口地址都是相互独立的。以UART中断服务程序为例, 即使服务程序代码一样,发生中断事件时,中断服务程序的入口是不一样 的。其中,Cortex-M0核芯片稍微特殊点,另当别论。 Bootloader中的全局变量和静态变量在跳转到APP后不再有效,因为APP会重新初始化自己的全局变量和静态变量。反之亦然。 不过,如果说在当前代码区使用了动态内存分配(例如malloc),跳转到另一代码区后,这些内存估计仍然占据着内存 空间,我们可以在跳转前先行释放这些内存。

赞1
5 回答

SPI 通信,既有单字节数据传输,又有多字节数据传输,该如正确使用 DMA?

STM32F4 DMA SPI
xmshao xmshao 回答时间: 2024-11-8 11:12

读写寄存器的时候,开启了 SPI 的片选,只需要读取 1 到 2 个字节的数据;在正式读写收发的数据的时候,开启 SPI 片选需要读写多个字节的数据。 ==>片选你可以使用STM32 SPI外设的NSS脚或者另外单独拉一个GPIO来完成。你希望每次单独做不同长度的读取,这是没问题的。对于片选脚,想通信时就先拉低,通信完毕拉高即可。当然,如果使用NSS,交由硬件管理也可以。 这样的情况下如何配置DMA,如果在开启片选信号的时候开启DMA,关闭片选信号的情况下关闭DMA;在进行寄存器读写的时候, 岂不是会出现频繁开关DMA的情况,这样算不算降低了程序的执行效率,而且还增加了程序的不稳定性? ==》 DMA配置其实只关心触发源,目的地,源端地,传输长度,再就是传输模式。 鉴于你目前应用,你这里配置为Normal模式合适,传输长度你具体启动SPI的DMA收发时给定。每完成启动一轮SPI收发后DMA会自行停止, 无须手动干预。这样使用谈不上降低程序执行效率或增加不稳定性。 我想在进行寄存器读写的时候,单独使用SPI,不使能DMA,在传输数据的时候,再开启DMA,请问这样配置合理吗?或者说还有无其他的实现方式? ==》 也是可以的。你现在配置DMA为Normal模式,不想使用DMA时,基于查询或中断方式进行SPI收发也可以。说不上什么不合理,但似乎没有 什么必要,反正DMA都配置好,随时待命了。

赞1
4 回答

STM32F4的串口在配置DMA之后,不能使用高波特率吗?

STM32F4 串口 DMA
Ha~ha~ Ha~ha~ 回答时间: 2024-11-7 10:10

这是从另外一块板子上移植的串口代码,之前哪个板子的串口3做rs485接口,外部有上拉,所以当时给配置了开漏,移植的时候忽略这问题了。😕

赞0
Ha~ha~ Ha~ha~


阅读作者更多的帖子

所在话题

参与活动

  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16