问题标签 [stm32ldiscovery]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
memory - 如何为STM32L475板交换闪存中的两个区域?
我正在研究 STM32L475 IoT 套件,它是一个 ARM M4 Cortex 设备。我想交换两个闪存区域。我正在使用的主板有两个用于闪存的存储库,每个存储库的大小为 512KB。所以我有 1 MB 闪存。我读到要交换闪存的内容,您必须先将其解锁,然后将其擦除,然后再写入并在操作结束后锁定闪存。
还有另一个限制,一次只能复制 2KB 的内存,这被定义为一个页面。所以只能逐页复制内存。对于我的应用程序,如果满足某些条件,我必须交换存储在闪存中的应用程序 1 和 2。虽然这两个应用程序都被分配了 384 KB 的内存,但它们实际上都使用了更少的内存(例如 264 KB)。
我尝试按照上述步骤操作,但它不起作用。这是我尝试过的代码:-
这里交换缓冲区用于在交换时将每个页面(2KB)临时存储为缓冲区。此外,变量限制存储了应用程序 1 和 2 的最大大小,以便在内存大小不相等的情况下进行交换时不会出现错误,如前所述。所以基本上我是逐页交换,一次只有 2 KB。
谁能弄清楚代码中有什么问题?
谢谢,谢
图
c++ - 如何在 STM32L475 的 FLASH 内存中交换来自不同存储库的两个内存区域?
我正在研究 B-L475E-IOT01A2,它是 STM32L475 系列 Discovery IoT 套件,具有 ARM M4 皮质。它有两个 FLASH 存储器,每个大小为 512 KB。我正在实现两个应用程序以及一个引导加载程序,它们都存储在闪存中。由于空间非常小,引导加载程序、第一个应用程序和第二个应用程序的某些部分存储在第一个存储库中,而第二个存储库包含第二个应用程序的剩余部分。因此,在引导加载程序中,我需要交换两个应用程序。
问题是两个应用程序中只有一部分被交换,因为第二个应用程序部分存储在两个银行中。一次只能在 FLASH 中写入一页 (2 KB) 内存。这两个应用程序的大小均为 384 KB,计算后结果为 192 页。但在运行交换程序后,只交换了 72 页。
这是应用程序和引导加载程序的地址。
那么我应该怎么做才能确保正确交换?我应该启用双银行模式还是将第二个应用程序存储在第二个银行或做其他事情?
您的帮助将不胜感激。
谢谢,
舍图
c - while 循环仅在条件为假并插入延迟时停止
我想执行一个while循环,直到达到一个条件,条件是由一个用户按钮触发的中断给出的,但是当我按下按钮时while循环没有结束,奇怪的是如果我在里面放一个延迟循环然后它工作
程序以“hello”开始,然后进入while循环,我按下按钮,此时中断将button_state设置为1,我希望while循环结束,到达我重置条件“button_state = 0;" 并再次看到“你好”,但没有发生这种情况。如果我在循环内插入延迟,则所有预期都已实现
c - PRINTF 防止进入低功耗模式
我正在我的 bl072z lora 板上测试低功耗模式,我调用低功耗模式功能,当我从这种状态唤醒时(在计时器设置为 20 秒后),LED 闪烁,一切正常,但如果我打印一条消息使用 PRINTF 代替闪烁导致知道板是否唤醒我从未进入低功耗模式,只是在终端中看到 PRINTF 消息,为什么我不能使用 PRINTF 和低功耗功能?
我使用“唤醒”消息知道我是否退出睡眠模式,我调用低功耗功能,20 秒后我希望在终端中看到“唤醒”一次,然后再次进入睡眠并重复该过程,一切正常,但不能打印消息,在终端我只能看到(无限期):
c - 有人有带有 TLC59116 I2C 示例代码的 STM32L0xx 吗?
我正在编写一个基本的 LED 程序,以使用 STM32L0xx 芯片和 TI TLC59116F 在定制板上点亮 LED,但我在解释数据表时遇到了一些麻烦。
我使用 STM32CubeMX 设置初始引脚和初始化 I2C,并根据我找到的一些示例提出以下内容。
然后在 main.c
编辑:这是一个更完整的代码示例,其中包含 HAL 错误检查等。
rust - Rust 发现,配置文件未按预期工作
我试图避免在每个 GDB 会话中输入相同的命令。为此,我已按照rust discovery book中的说明进行操作,但是当我通过 cargo run 运行程序时,程序无法按照书中所述运行,它给出以下错误:
我的 openocd.gdb 文件包含以下内容:
我的配置文件包含以下内容:
amazon-web-services - AWS freeRtos“无法预置设备证书错误:48”
我是 AWS IoT 的新手,正在使用STM32L475 Discovery 套件板,并尝试根据AWS 入门指南为该板运行 AWS freertos 演示。我遵循了 AWS 文档中提供的所有步骤,但遇到了以下错误。
我检查了 AWS 凭证,它们是正确的。我使用快速连接方法注册了我的开发板并创建了 Iot Thing。在调试可能导致问题的项目之前,我还擦除了闪存。
我正在为项目使用Windows 10(64 位)上的系统工作台和速度设置为 115200 的 Teraterm 串行终端
谁能让我知道如何解决这个问题?谢谢是提前。
stm32 - 在 STM32L100Rc 上退出 STOP 模式
我是使用 STM32L100RC 探索板的新编码员。因此,我相信我的问题很简单;我无法使用唤醒引脚 PA0 上的外部触发器退出停止模式。代码作为闲置工作:PC9 引脚上的 LED 亮起,我进入停止模式,一旦按下 PA0 按钮使用唤醒命令,LED 将关闭几秒钟。现在我知道使用 aa for 循环不是等待几秒钟的正确方法,无需指出这一点。如果有人能解释我做错了什么,我将不胜感激。这是我到目前为止所做的:
rust - 无法获取`https://github.com/rust-lang/crates.io-index`
我在通过https://docs.rust-embedded.org/discovery/03-setup/index.html
安装时关注此问题 ,它会引发错误
如何解决此错误?itmdump
cargo install itm --vers 0.3.1
error: failed to fetch https://github.com/rust-lang/crates.io-index Caused by:
error inflating zlib stream; class=Zlib (5)
c - STM32L0 LoRaWAN 探索板:每 250 毫秒触发一次 RTC 警报
最终,我想做的是每 250 毫秒触发一次警报以唤醒 STM32L0,执行一些功能,然后重新进入睡眠模式。我现在尝试使用此代码作为 RTC 警报的概念证明。就是每秒触发一次警报。wake_up_flag=1
警报回调中的确认了这一点。我正在使用自定义 printf 函数和一个函数来显示 RTC 时间和唤醒标志的值,我将其排除在外以专注于与我的问题相关的代码。
问题是 RTC 似乎正在工作并跟踪时间,但警报回调从未触发,我不知道为什么。我使用 STM32CubeIDE 生成了大部分代码,据我所知,启用了我需要的一切。我是 STM32CubeIDE 的新手,任何帮助将不胜感激。提前谢谢你。
主循环:
报警回调:
RTC 初始化:
GPIO配置: