问题标签 [mcu]
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.
interrupt - SPI通信过程中发生的其他中断发生了什么
我正在使用带有 SPI 的 EEPROM
如果在 EEPROM 写入序列(SPI comm)期间发生其他中断,会发生什么?
这会造成问题吗?
stm32 - STM32 上 SPI 和 I2C 中断的行为不一致
我目前正在 STM32CubeIDE 中使用 STM32F303VET6。
对于 SPI,图形配置器中的所有选项都默认(当然,SPI 及其 DMA 是手动启用的,但默认启用 DMA 中断和禁用 SPI 中断),该函数
HAL_SPI_TxCpltCallback
将在传输后自动调用(由 发起HAL_SPI_Transmit_DMA
)完成,因此我可以将 NSS 拉高。但是,对于 I2C,
HAL_I2C_MasterTxCpltCallback
在传输完成后不会调用,这可以从外部逻辑分析仪中看到。
这就是我所说的“不一致”。我的问题是:
这种不一致是一个错误吗?
如果没有,此功能在哪里记录?或者,我如何知道是否应该单击 I2C 中断复选框而不逐行调试 HAL 代码?
esp32 - ESP32 从固件 .bin 文件中检索嵌入的二进制文件
我正在使用 ESP32 aWOT 库来设置网络服务器,并且我想将一堆二进制文件嵌入到固件 .bin 映像中(用于 OTA 更新目的)。使用 PlatformIO,我们可以使用:
board_build.embed_txtfiles = src/file.ext
命令将文件嵌入到 .bin 文件中。但是我不知道如何检索文件(使用 SPIFFS 之类的文件系统或使用 C/汇编语言)。Espressif 文档中提到了extern const uint8_t file_ext_start[] asm("_binary_src_file_ext_start");
访问文件内容的命令,但我不明白如何使用它。
假设 file.html 嵌入到 .bin 中,然后我希望像 192.168.0.XX/file.html 一样路由它 - aWOT 库提供app.get("/page", &handler);
*handler 处理响应的位置,但如何引用嵌入的 html处理函数中的文件?
thread-safety - 这个循环事件缓冲区线程安全吗?
我为我的 MCU 创建了一个循环缓冲区结构,其中结构元素是:
- 事件缓冲区[m]
- 头
- 尾巴
我使用这些事件来驱动状态机。对于我的应用程序,ISR 是生产者,而我的主要是消费者。ISR 不能互相抢占,每个 ISR 具有相同的优先级。ISR 将事件推送到事件缓冲区的头部索引并增加头部变量,而我的主要代码从事件缓冲区的尾部索引弹出事件并增加尾部变量。如果头或尾指针到达缓冲区的末尾,它们只会环绕。
在主代码中,我检查缓冲区,如:
在 ISR 中,我将事件添加到缓冲区,例如:
如果我必须从 main 将事件发布到事件缓冲区,我会禁用并启用中断。
我想知道这个结构是否是线程安全的,或者我是否必须在检查缓冲区是否为空(Head==Tail,没有要处理的事件)或调度事件或增加 tail 变量时禁用和启用主循环中的中断?我错过了什么吗?
c - STM32主/从SPI通信使用HAL_SPI_TransmitReceive()
我正在尝试使用 HAL_SPI_TransmitReceive() 测试 SPI 主机,因为我将与 SPI 从机进行通信。SPI 从设备尚不可用。我有两个正在使用的 STM32F4 NUCLEO。一个将是主设备,一个假装是从设备。我已将它们连接在一起并使用以下代码:
Master_main.c
slave_main.c
为了简单起见,我去掉了各种 MCU 初始化。我之前曾尝试使用 IT 版本的 TransmitRecieve,但没有成功传输。如果我多次使用主设备上的 USER 按钮,它确实会激活从设备上的相应灯,但不会在主设备上激活。
microcontroller - PIC24FJ64GA002 中的 PWM 设置
美好的一天,我正在使用 PIC24FJ64GA002 微控制器,并且正在努力让 PWM 为我想要使用的伺服系统工作。我的代码如下:
我将 T1CON 的周期设置为 2 ms,而 OC1R 的周期为该周期的一半,这将导致占空比为 50%。我正在使用 FRC 振荡器 (8MHz),我的预分频器值为 <0,1>。我知道是 OC1R 引脚给出了周期为高的周期,但在数据表中,他们将其称为引脚,但是他们没有给出它是什么引脚(即 A0、A1、R15 等)。我也可以找到很少的示例代码来解释如何很好地编码。如果有人是某种帮助的PIC专家,将不胜感激!MCU 的数据表可在https://www.microchip.com/en-us/product/PIC24FJ64GA002下载。
debugging - 使用核心转储日志跟踪问题
我正在使用 K210 MCU。并且由于某些原因,MCU 崩溃并显示以下核心转储日志:
我的问题是,是否可以跟踪问题仅使用此核心转储信息并使用提取的反汇编文件在哪一行riscv64-unknown-elf-objdump
?
esp8266 - ESP8266 NodeMCU MicroPython 串行垃圾,无法擦除闪存或上传文件
看起来我的 NodeMCU Lolin esp8266 模块坏了,请确认)
首先一切正常,但随后...
- 我上传有点奇怪
boot.py
玩UART0
- 然后我
main.py
在无限循环中使用 time.sleep() 上传闪烁来检查状态,同时我将模块安装在框中。
- 然后,当我在盒子中安装模块时,我不小心从 PCB 上撕下了一个元件,然后将其焊接回来。我不知道这个元素是什么,它的目的是什么。我在图像 IMG 上标记了这个元素 :损坏的元素
毕竟我无法通过串口连接到模块,我只看到屏幕上的垃圾,尝试了不同的波特率。 IMG:屏幕是空的,对按键或 Ctrl+C 没有反应
重置板后屏幕IMG中只有垃圾:重置后的垃圾
我也无法使用esptool
.
MCU 正在工作,因为当它通电时,LED 在编程时闪烁main.py
我尝试通过连接来启用引导加载程序模式GPIO0
,GND
闪烁在此模式下不起作用,但在此模式下esptool.py
也不起作用。ESP工具日志
带有 --trace arg 的 esptool 日志
我的 nodemcu 模块有什么问题,它是否死了?我可以尝试做什么?
c - make: *** [Core/Src/subdir.mk:34: Core/Src/main.o] 错误 1
我是STM32的新手。激活所有外围库后,我尝试构建代码,但出现以下错误:
make: *** [Core/Src/subdir.mk:34: Core/Src/main.o] 错误 1
“make -j4 all”以退出代码 2 终止。构建可能不完整。
我正在使用STM32F411
电路板。
有没有人处理过这个问题?