问题标签 [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.
stm32ldiscovery - STM32L-发现错误信息?
我正在尝试对 stm32l-discovery 板进行编程,并遇到了在我尝试构建项目时不断出现的这个错误。
我正在使用 Keil uVision 4。
资源:
有谁知道这是什么意思?
c++ - 为什么我会收到此类型转换错误
我收到此编译器错误 ../include/BlinkLed.h:46:68: 错误:从“int”转换为“uint16_t {aka short unsigned int}”可能会改变其值 [-Werror=conversion]
当我在 GPIO_SetBit/GPIO_ResetBits 函数上将引脚作为 u16 类型传递时,
如果我用恒定值调用相同的函数,例如。
GPIO_SetBits(BLINK_GPIOx(BLINK_PORT_NUMBER),BLINK_PIN_MASK(15)); 程序编译并运行良好。如何避免此编译错误,但仍将引脚作为参数传递。
stm32 - PLL 时钟配置
我正在使用 STM32L152RB 板,我正在尝试将系统时钟配置为使用 PLL 时钟,但 RCC_FLAG_PLLRDY 标志正在设置,因此程序卡在 while 循环中。请让我做错了什么
c - STemWin STM32F746G-DISCO 与小部件库
我正在使用 STM32 的新板,并从 GUIBuilder 中添加了简单的页面,从包含的软件到库。当我运行我的代码时,例如单击滑块小部件时,我遇到了一些错误。滑块更改了他的值,但是当我单击屏幕的其他部分(未安装在小部件中)时,他的值仍然会更改。整个屏幕只关注这个小部件。我使用 STM32 为这个开发套件提供的 CubeF7 的 LCD 设置。我还包括了负责我的窗口的部分代码,这些代码不起作用。也许有人有同样的问题,或者我使用了错误的文件。
embedded - 使用 STM32f3discovery 初始化 SSD1305 OLED
我正在尝试运行基于SSD1305 OLED 控制器和 stm32f3discovery 板的 OLED WEX012864GL 。我用 31 针排连接了电路板,第一个针绑定在 3V 上,最后一个针绑定在 PD9 上(这是电路板的左上针排)。代码看起来像这样:
当我在板上运行代码时,观察到一个非常奇怪的结果 - 显示屏无法正常工作,直到我按下重置按钮,屏幕短暂亮起然后又变暗。这可能是什么原因?
assembly - 这个装配延迟功能有多少秒的延迟?
我需要帮助解决这个装配延迟功能,谁能帮我计算一下这个装配延迟功能需要多少秒的延迟?它是 STM32L152-DISCOVERY 板的编码,这里是它的页面: http: //www.st.com/web/en/catalog/tools/FM116/SC959/SS1532/LN1848/PF258515
stm32 - STM32 DMA:缓冲区中剩余的字节,编码?
很长一段时间以来,我一直在以某种形式与两个 STM32 板进行 DMA 通信。我目前的问题如下。
我有一个运行以下代码的主机(树莓派),等待开发板初始化通信:
基本上,它会等待一个字节的数据,然后将“中午防御”发送到电路板,然后打印发回的所有内容。
板子首先发送一个字节,然后等待所有传入的数据,替换几个字节并将其发回。请参阅本文末尾的代码。该板可以是 STM32L100C 或 STM32F407(实际上是发现板);在这一点上,我正在经历与两者相同的行为。
我看到的输出(在美好的一天 - 在糟糕的一天挂起Written 16 bytes
)如下:
如您所见,数据已发送并按预期替换了四个字节,但前面多出了两个字符(^J
,或0x5E
and 0x4A
)。这些结果是signal_host
函数的直接结果。当我用任意的东西(例如)替换字符时x
,这就是在该位置输出的内容。有趣的是,它实际上会在沿途的某个地方\n
转换为插入符号。^J
这似乎发生在与电路板的通信中,因为当我简单地在缓冲区中硬编码一个字符串并将dma_transmit
其发送到非交互式主机程序时,它就可以很好地打印出来。
看起来我以某种方式错误配置了 DMA,因为有些缓冲区没有被正确清除。此外,我并不真正相信主机端程序使用 stty 的方式。但是,过去我实际上使用这个确切的代码进行了完美的通信。我将它与存储在我的 git 历史记录中几个月的代码进行了比较,但我找不到差异/缺陷。
请注意,下面的代码使用libopencm3并基于libopencm3-examples 中的示例。
STM32L1代码:
STM32F4代码:
stm32 - 无法运行 STM32 L1 Discovery 板
我有新鲜的STM32 L1发现板,它似乎坏了。但我不完全确定。
当通过 USB 将开发板连接到 Linux 机器时,开发板完全正常启动,并且演示工作与供应商描述的一样。
但我无法真正连接到这块板。
电路板似乎已连接,用于在 ST-LINK 和 DISCOVERY 之间切换的大跳线 (CN3) 设置为 DISCOVERY。但是当我尝试使用我收到的 st-link 实用程序时。
OpenOCD 也无法与董事会对话。
板载芯片为STM32L152RCT6。我之前使用过 STM32F0..4 并且从未遇到过这样的问题,但是我之前没有使用过 L 系列,所以我不确定这是电路板问题还是我在这里跳过了一些重要的问题。
编辑:使用 OpenOCD 我发现不是预期的行为。在第一次运行时,我收到错误:
在第二次运行:
然后设备从系统中消失,dmesg
留下消息:
我认为适配器速度可能存在问题,但我现在不确定。
EDIT2:我尝试使用 Windows ST Link Utility,但无法连接到电路板,电路板导致“检测错误”或“连接错误”,软件建议更改 SWD 频率或模式。我厌倦了几乎所有的组合,但没有一个有效。
EDIT3:如果这对某人有帮助,则板已被退回,我得到的信息表明它实际上已损坏并且我有新的。新的按预期完美运行。
c - STM32L0 的自动波特率检测
我无法在STM32L0
. 我正在使用硬件抽象层(HAL)。
我的初始化代码是:
我通过 UART1 发送的字节是:
为什么没有检测到波特率?我试过了:
UART_ADVFEATURE_AUTOBAUDRATE_ONSTARTBIT
和UART_ADVFEATURE_AUTOBAUDRATE_ONFALLINGEDGE
所以我调整了模式设置的顺序和驱动程序中的启用:
到
什么都不做。
此外,以下似乎很好:
时钟源频率必须与预期的通信速度兼容(16 倍过采样时,波特率介于 fCK/65535 和 fCK/16 之间。8 倍过采样时,波特率介于 fCK/65535 和 fCK/8 之间)。
我过采样 16,所以
我选择的波特率是:19200/ 9600 /2400 /300
c - STM32L476G Discovery 上的 USART 通信
我有两块板:一个 NUCLEO-F411RE 和一个 STM32L467G Discovery。
我需要在我的 STM32L467G Discovery 和我的 PC 之间建立一个 Virtual Com 连接。
对于 NUCLEO:USART2 连接到 ST-Link,因此我可以通过 USB 上的 USART 与我的 PC 通信。所以,我启用了 GPIO A和 USART2 时钟。之后,我将我的 GPIO A配置为连接 USART2 上的端口 2 和 3,它运行良好!我可以在我的电脑上接收一些字符。
对于 STM32L467G Discovery:STM32L467G Discovery 在端口 2 上也有 USART2,在 GPIO A上也有 3。但是,在文档中,他们说 USART2 通过 GPIO D的端口 5 和 6 上的 USART2 与 ST-Link 连接。所以,我修改了我的源代码,但我的电脑收不到任何东西..
检查我的来源:
主程序
此代码在 Nucleo NUCLEO-F411RE 上运行良好(但使用 GPIO A和端口 2 和 3)。
在我的 STM32L467G Discovery 上,该代码完全失败,GPIO D端口 5 和 6 && GPIO A端口 2 和 3。
我看不到问题,你能帮我吗?