问题标签 [stm32f3]

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.

0 投票
0 回答
127 浏览

stm32 - 如何在 STM32 上使用 DMA 和 Sigma Delta ADC?

最近我尝试了带中断的 Sigma Delta ADC。它工作得很好。现在我想删除中断并添加 DMA。但是随后 DMA 不会将任何内容添加到数据指针数组中。

我没有改变任何东西,除了删除中断和添加 DMA。你觉得我接下来应该怎么做?

这些数组为零。我有 9 个 SDADC 用于 SDADC1。3 个 SDADC 用于 SDADC2,5 个 SDADC 用于 SDADC3。

完整代码:

0 投票
1 回答
49 浏览

c - XGZP6859D 带 Stm32f302R8 的压力传感器

我想创建一个 API 来使用电路板从XGZP6859D压力传感器中获取价值,stm32f302r8 nucleo

这是它的数据表http://cfsensor.com/static/upload/file/20210110/XGZP6859D%20Pressure%20Sensor%20Module.pdf

我在 API 中编写了所有寄存器,并声明了一个有助于从传感器获取压力值的函数。

有人会帮助我或提供一些提示如何编写函数吗?提前致谢。

0 投票
1 回答
62 浏览

rust - stm32f3发现usart没有发送

这是我用 Rust 编写的简单寄存器级程序。这是在阅读了许多用 C 编写的博客之后。我正在尝试像他们在 C 中为发现板所做的那样配置寄存器,但不幸的是它没有按预期工作。

我正在尝试通过 uart1 发送单个字符。在硬件方面,我按照发现书中的描述连接了我的 ftdi 模块。

发送时,ftdi rx LED 闪烁表示数据传输。Mini-com 预计会显示这些数据,但无论是在 ftdi 还是 mini-com 上都一无所获。

0 投票
1 回答
548 浏览

stm32 - 我应该在 STM32 中使用什么 RTC 备份寄存器?

我正在使用 STM32F373,我想在每次启动我的 STM32 时加载日历和时钟。

所以我通过纽扣电池将 Vbat 连接到 3V,现在我需要在初始化 RTC 结构后加载我的备份寄存器。

这是来自 STM32 存储库的 STM32F373 示例

这里有趣的部分是

从数据表

在此处输入图像描述

问题:

我应该读什么备份寄存器?是 RTC_BKP_DR0、RTC_BKP_DR1、RTC_BKP_DR2、RTC_BKP_DR3 等吗?

函数HAL_RTCEx_BKUPRead表示备份寄存器从 0 变为 19。

我应该除了什么返回值?

0 投票
1 回答
156 浏览

stm32 - STM32 I2C 只传输一次

我使用 stm32f3数据表作为寄存器级编程的参考,而不是 HAL。我很确定我正确设置了所有内容,因为我实际上能够通过 I2C 外围设备传输数据字节但是当我将从地址更改为不同的设备(从加速度计到磁力计)时它无法发送字节我得到一个 NACK和停止条件。为什么会这样?

这是我的时钟设置:

这是我的 I2C 初始化函数(也初始化从寄存器设置):

这两个函数是从 main 调用的。首先调用 ResetClockControl。

另外,定时寄存器值是由CubeMX生成的(正面我设置cubeMX与这里的时钟参数相同)

任何人都可以在这里找出问题吗?

谢谢

0 投票
2 回答
120 浏览

stm32 - STM32 SPI数据打包

我无法让我的 STM32f3 发现板(数据表)上的 SPI陀螺仪传感器(I3G4250D)一起工作在寄存器级别。我知道我正在发送数据,因为我处于全双工状态并使用 16 位数据打包从传感器接收虚拟字节,但是当我尝试使用 8 位访问 DR 寄存器接收数据时,我从传感器得到不一致的值,有时返回一个字节 0xff其他时候返回 2 个字节 0xffff (至少我认为这是正在发生的事情),但没有来自我想要读取的传感器寄存器的实际值。我认为这与我芯片上 STM32 SPI 的自动打包有关,但我认为我正在通过使用 uint8_t* 访问 DR 寄存器来解决这个问题,但它似乎不起作用。

这是我的 SPI 初始化函数,其中包括尝试在其末尾读取字节并将字节写入传感器寄存器函数:

有什么建议么?

0 投票
0 回答
34 浏览

stm32 - 如何正确配置带有 lmt86 的 stm32?

我正在实现一个 stm32,它从 LTM86 传感器读取数据并在 CAN 总线中传输转换后的温度。我的问题与 ADC 配置有关,因为 ADC 提供的电压值与用电压表在引脚上测量的电压值不同。因此,转换后的温度将是错误的。

我尝试了这个 ADC 设置:

ADC 设置

0 投票
1 回答
76 浏览

rust - 使用嵌入式 rust 设置寄存器

所以...我一直在关注嵌入式 rust 书...我目前正在阅读有关寄存器的内容。现在,这本书确实建议我使用STM32F303VC 发现来避免问题,但我找不到,因此我得到了Nucleo F303RE。货物的目标和材料保持不变。所以我认为不会有任何问题。

因此,我使用的 MCU 将 Led 连接到端口 A (0x48000000),其 BSRR 偏移量为 0x18。现在,我在数据表中读到,端口 A 的默认值为 0xa8000000,我不明白为什么。但是当我尝试使用没有任何反应来设置 LED 引脚 ptr::write_volatile(PORTA_BSRR as *mut u32, 1 << 5);时。甚至我的 gdb 终端也没有反映任何变化。因此,我尝试按照原始教程的建议(0x48001018)检查portE。但即便如此,寄存器值也不会改变。我无法调试此问题。

现在,我能够运行之前的教程,并且能够检查变量和东西。我的 stm 似乎没有任何问题,因为我可以使用 stmc32cubeide 很好地控制它。

这是您想要参考的代码

编辑:所以,我阅读了@Ikolbly 的评论,并查看了 RCC_AHBENR 寄存器,我猜这就像在 arduino 中设置 pinMode(pin, HIGH) 一样,它打开了端口。

我已经修改了代码以设置该位,但似乎没有任何变化。我猜辅助代码已经为 portE 做了这件事,这就是为什么我不必为此做任何初始化......但即使更改 portE 的寄存器值也不起作用。

0 投票
1 回答
18 浏览

stm32 - HAL_UARTEx_RxEventCallback() circular DMA: What address is the data?

I'm using the HAL with an STM32F3xx, implementing UART receive with circular DMA. The data should continually be received into the huart->pRxBuffPtr buffer, overwriting old data as new data arrives, and the HAL_UARTEx_RxEventCallback() function gets called regularly to copy out the data before it gets overwritten. The HAL_UARTEx_RxEventCallback() function receives a size parameter and of course a pointer huart, but no direct indication of where in the huart->pRxBuffPtr the freshly arrived data was DMA'd to.

How do I know whereabouts in huart->pRxBuffPtr the freshly arrived data starts?

0 投票
0 回答
36 浏览

rust - 使用 STM32F3 进行 ADC 和 DMA 传输时,为什么在中断回调中只写入一次内存位置?

我希望让我的 STM32F303 探索板使用 ADC 和 DMA 传输到内存位置从温度传感器连续读取,但是在中断回调期间,内存位置似乎只被写入一次并且随后从未更新. 在回调中,我还确认 ADC 的数据寄存器中的值正在发生变化。

我不知道这里的问题是什么,并且可以在正确的方向上使用一些指针。我正在为这个项目使用Knurling 应用程序模板RTIC(实时中断驱动并发)和stm32f3xx-hal crate。

这是我当前的源代码

这是此运行的一些示例输出