问题标签 [stm32f7]
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.
c - 在 C 中使用 LwIP 设置 DHCP 选项
使用 LwIP 库发送 dhcp 请求时,我在哪里可以更改 dhcp 选项的配置?
我需要设置选项 53(DHCP 消息类型(发现))、61(客户端标识符)、12(主机名)、60(供应商类标识符)和 55(参数请求列表)。
我在 stm32f7 上使用 CubeMx 创建了我的项目。
stm32 - STM32F7 + FatFs = FR_NOT_READY
我现在使用 CubeMx 4.23.0 和 STM32F7 1.8.0 MCU 的固件包是 Core746i 板上的 STM32F746。一切都是由 CubeMx 自动生成的。
主.c:
sdmmc.c:
如果 f_mount(&SDFatFs, (TCHAR const*)SD_Path, 0) <- 此处为 1(强制安装),则输出为:
- f_mount = 0x03
- f_open = 0x01
使用 0(现在不要挂载)输出为:
- f_mount = 0x00
- f_open = 0x03
0x03 值是 FR_NOT_READY,但官方信息对此非常模糊
我尝试过的事情:
- 将 HAL_SD_Init(&hsd1) 添加到 MX_SDMMC1_SD_Init() 因为我没有找到 SD 卡 GPIO 初始化发生在哪里。
- 2 GB 无名 SD 卡,1 GB 创见卡。
- 不同的 hsd1.Init.ClockDiv 3 到 255。
- 彻底重新焊接一切。
- 使用 HAL_SD_ConfigWideBusOperation(&hsd1, SDMMC_BUS_WIDE_4B) 切换到 4 位宽总线;
- 打开和关闭引体向上。
但卡仍然没有安装。它采用 FAT 格式,在 PC 上工作,我尝试打开的文件存在,但为空。
如何让它安装?提前致谢!
c - sysTick 频率操纵?
我的 STM32F7 需要一个高精度中断。任务是在每个滴答声中增加一个计数器。CPU 的频率高达 216 MHz(来自数据表),这意味着可以实现大约 5 ns 的滴答持续时间,对吗?
经过一些互联网研究后,我发现 sysTick 可用于此目的。我应该简单地配置 SysTick 如下:
我在 SysTick_Handler 函数内切换一个 GPIO 引脚来检查执行频率,它是 1 毫秒。
我想实现 1 微秒的滴答持续时间,所以我用 100 替换了 1000(在代码中),然后我尝试了不同的数字,但似乎没有任何影响 1 毫秒的持续时间。
我在这里错过了什么吗?有没有比 sysTick 更好的解决方案来实现这个目标?
谢谢。
stm32f7 - 我可以将 c++ 与 stm32f7 一起使用吗?
我一直在浏览 St.com 网站提供的 STM32Cube_FW_F7 下载示例。
我注意到他们都在使用 c,有没有办法让我使用 c++。
java - 在 MicroEj 中使用 UART 和 STM32f746g-DISCO
我正在尝试使用 java 在 STM32F7 中使用 UART 串行通信与 MicroEj,并且我有异常抛出打开 Com 端口。这是打开连接的简单代码:
这是一个例外:
java.io.IOException:ECOM-COMM:无效的连接描述符。
我认为可能存在一些问题,CONNECTION_STRING
但我找不到任何示例。任何人都可以帮助我吗?
arm - STM32F767ZI 与 DAC082S085 接口
我计划在同步模式下使用 STM32F767ZI USART 端口并控制 DAC (DAC082S085) 来生成两个模拟信号。我还想控制这些模拟信号的幅度。那么,在 CubeMx 和 Keil 中我该怎么做呢?
谢谢
c++ - stm32f746 flash read after write返回null
我正在将设置保存到闪存并再次读取它们。其中 2 个值总是空的。然而,数据被写入闪存,因为在复位后读取的值是新保存的值而不是空的。
在从另一家公司接手代码后进行了一些代码重构后,我开始遇到这个问题。
当您实际执行以下操作(旧的低效方式)时,保存和读取设置有效:保存设置 0 - 读取设置 0 保存设置 1 - 读取设置 1 ... 保存设置 13 读取设置 13
这是极其低效和缓慢的,因为从闪存读取具有所有设置的同一页面,清除整个闪存块,将新设置放入读取缓冲区,然后将整个块(仅更改 1 个设置)写入闪存. 这发生在所有 14 种设置中!!但它的工作...
实际上,我改变了这一点,在将闪存中的设置读入缓冲区后,更新缓冲区中所有更改的设置,然后擦除闪存块并将缓冲区写回闪存。缺点:将此缓冲区保存到闪存后,我的第一个和第四个值总是返回为 NULL。
但是,在系统复位后,会从闪存中读取正确的值。
我开始尝试清理数据缓存并使数据缓存失效。至少这两个值不再是 NULL,但是,它们仍然是旧值。所有其他值都是新的、保存的值。进行重置,所有值都正确。
有人遇到过类似的问题吗?或者也许我可以尝试摆脱这个问题的想法?
c++ - I2C 不确认从地址
我在 Nucleo 144 板上使用 STM32F767ZI MCU,C++ 作为编程语言和 IAR 嵌入式工作台 IDE。即使 I2C 已启用且 TXDR 寄存器中没有数据,TXIS 位标志状态也永远不会设置 (1)。
我还注意到,虽然主机和从机在相关寄存器中具有相同的从机地址,但没有出现 ADDCODE。尽管从代码中可以明显看出我正在使用轮询方法。ADDCODE 寄存器应该与从地址具有相同的地址,这也不会发生。
硬件设置已被验证为正确。
尝试使用 I2C1 作为主发送器和 I2C2 作为从接收器在同一 MCU 上执行环回测试。代码卡在如下部分:
如下IsTXISset()
:
有人可以帮忙吗?
c++ - STM32F767ZIT6 Nucleo openocd 闪存
STM32F767ZIT6 Nucleo 板并尝试使用模板中的闪烁代码对其进行闪烁
- 已填充所有 CMSIS 和所需的驱动程序。
- 安装了 GNU MCU eclipse 插件。
- 构建代码
- 已配置的 openOCD
- 当尝试调试代码时,它会返回这些错误
我猜这可能与内存映射有关。想不通。 https://www.st.com/en/microcontrollers/stm32f767zi.html
*****真正的新手****(-(我正在使用Windows和eclipse Photon)
mutex - Uart dma receive interrupt stops receiving data after several minutes
I have a project that I have used stm32f746g discovery board. It receives data with fixed size from Uart sequentially and to inform application about each data receive completed, dma callback is used (HAL_UART_RxCpltCallback function). It works fine at the beginning but after several minutes of running, the dma callback stops to be called, and as a result, the specified parameter value doesn't get updated. Because the parameter is used in another thread too (actually a rtos defined timer), I believe this problem is caused by lacking of thread safety. But my problem is that mutex and semaphore don't be supported in ISRs and I need to protect my variable in dma callback which is an interrupt routine. I am using keil rtx to handle multithreading and the timer I use is osTimer that is defined in rtx. How can I handle the issue?