问题标签 [stm32f4]

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 投票
1 回答
6663 浏览

lcd - STM32F4 FSMC 带 TFT LCD

我正在尝试了解 STM32f4-discovery 上的灵活静态内存控制器 (FSMC)。

我做了很多研究,但我无法理解这是如何工作的。我是一个完全自学的程序员,目前正在攻读化学学位,所以请放轻松,哈哈。

我找到了这些网站,我一直在用这些网站来解决这个问题:

https://electronics.stackexchange.com/questions/165200/stm32f407-fsmc-interface-with-tft-lcd

http://prog3.com/sbdm/blog/u013030441/article/details/48159101

http://www2.st.com/content/ccc/resource/technical/document/application_note/85/ad/ef/0f/a3/a6/49/9a/CD00201397.pdf/files/CD00201397.pdf/jcr:内容/翻译/en.CD00201397.pdf

我还找到了带有 ST 示例代码的库。

好的,现在误解:

当我查看上面两个 TFT 驱动程序的代码时,我看到 LCD 是通过结构或定义访问的,例如

我的问题是为什么他们必须访问 FSMC SRAM 库的两个区域而不是一个。基本上为什么我不能通过只写入 LCD_REG(内存库的开头)来向 LCD 发送数据?

我一定缺少关于 FSMC 的一些东西。我已经多次阅读数据表,我知道银行从 0x6000 0000 开始,但我无法解释为什么他们会在 0x6002 0000 的另一个部分访问银行。

非常感谢任何有助于理解的帮助。如果您知道我可以用来学习 FSMC 的书籍或网站,我将不胜感激。

谢谢大家的时间!

0 投票
2 回答
700 浏览

c - CC3200 SPI Slave 接收错误

已解决:我必须为从机处理 CS/NSS 引脚。在 TX 之前和之后添加一些延迟。

我的问题是我通过 SPI 从 STM32F4 板接收到错误的数据。我的 CC3200 板 SPI 从配置:

打断:

还有我的 SPI Master 的 STM32F4 板配置:

结果我从 CC3200 得到,在我重置主设备后它发生了变化: 接收到的数据错误。 必须显示 6。

哪里可能有问题?

0 投票
1 回答
2423 浏览

c - 窗口看门狗定时器STM32F4

已编辑完成 .. 我将重建代码,但现在已经完成并经过测试

我需要实现一个计时器,每 x 秒检查一次条件..我面临的问题是程序进入无限循环时不会重置(离开以检查系统是否已停止)...
这些链接帮助了我.. 手册第 74 页http://www2.st.com/content/ccc/resource/technical/document/reference_manual/3d/6d/5a/66/b4/99/40/d4/DM00031020.pdf/files/ DM00031020.pdf/jcr:content/translations/en.DM00031020.pdf ..

这个链接http://www.programmershare.com/3518407/ 在此先感谢

我目前有这个代码:

0 投票
1 回答
2272 浏览

gcc - HAL_GetTick() 崩溃单片机

我使用 STCubeMX 为我的 nucleo-f446ZE(STM32F446ZET6) 创建了一个简单的项目。

该项目应该是一个 USB 设备 HID,但它无法启动。在搞乱调试器后,我发现 MCU PC 寄存器转到 0x00000000 或 0xFFFFFFFF 或有时是随机无效值。

我没有修改任何代码。我用 MDK-ARM(修改后的 GCC,Vision IDE)和 GCC(openSTM32)编译了代码,同样的事情发生了。

调用栈:

  • 主要的
  • SystemClock_Config
  • HAL_RCC_ClockConfig (632)
  • Hal_GetTick

Ps:RAM 在 0x080149A 之后损坏,这就是为什么程序会做一些奇怪的事情 Image 调试器,组装

解决方案

CubeMX 没有很好地设置时钟。这是我用来使USB工作的设置。

0 投票
1 回答
1053 浏览

stm32 - stm32f429 USB CDC VCP检测

[伙计们,我已经安装了 VCP 驱动程序并在我的 stm32f429 中加载了 USB_CDC 的代码。但 VCP 端口在设备管理器中不可见。而是在设备管理器中显示“未知的USB设备,(设备描述符请求失败)”,如图所示。下面给出了谁的链接。请帮我解决这个问题。

http://i.stack.imgur.com/qRzed.png ] 1

0 投票
3 回答
4714 浏览

linker - IAR EWARM 6.5 将 const 变量存储在某个地址 BUG?

我想在stm32中保存一块闪存来存储我自己的配置信息。

为此,我想将闪存的第二个扇区保存在 STM32F2/STM32F4 上(16kb 存储在 0x08004000-0x08007FFF)

检查互联网和 stackoverflow,你有 4 种方法可以做到这一点

1)

#pragma location=0x08004000 __no_init const char ReservedArea[16*1024];

2)

__no_init const char ReservedArea[16*1024] @0x08004000;

3) 创建一个部分 + #pragma location=

项目icf:

place at address mem: 0x08004000 { readonly section ConfigSection };

c文件:

#pragma location="ConfigSection" __no_init const char ReservedArea[16*1024];

4)

在项目 .icf 文件中定义一个部分IAR 定义自定义数据的内存区域

发现错误或问题

方法 1 到 3工作正常。链接器为我的变量包含一个空间区域。您可以检查使用十六进制编辑器生成的 .bin 文件,或者仅调试并查看该变量为 @ 0x08004000。

使用这些方法发现的问题是 iar 链接器在 0x08000800 - 0x08003FFF 之间留下了超过 12kbytes 的未使用闪存。验证这一点的最佳方法是删除 var,编译,在注释中写入 bin 文件的大小,然后添加变量。如果你这样做,你会注意到新的 bin 文件大小大于 16kb,而它必须是 16kb。

如果您将地址从 0x08004000 移动到 0x0800C000 而不进行任何其他更改,则文件大小将再增加 32kbytes,并且所有先前的区域都设置为 0x00,并且在 bin 文件中未使用。这对我们的项目来说是一个大问题,因为我使用 bin 文件中剩余的未使用区域来允许固件更新。

检查地图文件,您会发现保留区之前的区域也未使用。

我尝试了几种方法来解决这个问题,例如定义 2 个带地址的变量、玩几个小时、检查链接器选项、优化、使用其他 #pragma 选项等。

关于第四种方法,它将变量存储在系统中,但它没有得到我想要的地址。问题可能是两个区域共享地址空间。

.icf 文件

c代码

是我的问题吗?这是一个错误吗?欢迎任何提示。

提前致谢。

0 投票
2 回答
164 浏览

freertos - FreeRTOS 胖循环问题,我有机会用 50hz 写 512bytes 吗?

我在使用freertos fat时提出了这个问题。使用iar编译器和MCU的开发环境使用的是cortex-m4。我使用的是 hal 库,FreeRTOS FAT Config.h 的内容如下:

我只生成了一个任务,SDcard write,它以 50hz 写入 400byte,任务如下:

PG6,该管脚启动时为高电平,循环结束时为低电平,检查处理时间 SDcard 写入函数内容如下:

在此处输入图像描述

SDCARD WRITE 任务示波器结果确认案例测试过程中出现意外时间长度,我设置为50hz写入400byte,但有时需要200~250ms

在此处输入图像描述

即使我更改字节长度,问题仍然存在

为什么会出现这个问题?

我有机会用 50hz 写 512bytes 吗?

或者 SD 卡写入的字节或频率是否有任何限制?

0 投票
1 回答
1863 浏览

python - Python将数据串行发送到微控制器STM32F4

所以这是我用来每2秒发送四次微秒时间到微控制器stm32f4的脚本,但不幸的是它只发送一些数字(从1-> 4),这与我打印时不同,它就像随机数。

0 投票
1 回答
702 浏览

c - 如果输入字符串长度超过 19 个字节,LwIP 套接字上的 UDP 服务器将陷入硬故障

我认为是因为 NULL 指针异常。我的嵌入式系统由 STM32F4、FreeRTOS 和 LwIP 组成。核心取自 ST 示例。这是简单UDP服务器的线程代码。

recvfrom()如果输入消息长度超过 19 个字节,程序控制永远不会从函数返回。并且永远不会从第 行文件中的函数sys_arch_mbox_fetch(&conn->recvmbox, &buf, 0);中的函数返回。 请帮助解决这个问题。netconn_recv_data()api_lib.c371

0 投票
1 回答
84 浏览

eclipse - 在 STM32F4x 中使用 freertos 进行多任务处理不起作用

我们使用 FreeRTOS API 创建任务,调度程序仍在运行,但只有一个任务在运行,并且在使用 FreeRTOS API 创建的多个任务之间没有发生上下文切换。在运行以下代码时,它总是运行到 task3(用于使用 Eclipse-GDB 进行调试)。