我已经推了此答案的代码 https://github.com/shorai/stackoverflow/tree/master/STM32F429i-CommsDemo到以下github地址。
代码很简单,回答了问题,并且主要由STM-Cube生成。 .ioc 文件也可供您修改。
还有许多其他外设可供使用,但未经测试,包括
USB VCport
Timers set for RC hobby servos, just change pulse width 500-1500
ADC in DMA mode
SPI for flash etc
I2C for port expansion or whatever
我和OP一样感到沮丧,他们花了很多天、几周和几个月的时间努力让这些东西在新旧库上运行。Finally2016 年,ST 似乎给了我一些启发,我可以继续为这些出色的主板开发真正的应用程序。
事实上,在执行此任务时,我必须重新安装我的多维数据集及其所有库才能正常工作,这可能会给其他人带来痛苦。
我将在这个“模板”中添加 LCD 和触摸屏,以制作一个很棒的小“droidlet”。
我通常将蓝牙模块连接到其中一个 UART 并通过那里进行调试。
安迪·布朗安迪·布朗 http://andybrown.me.uk对于某些 ST,有一些很棒的 C++ 库。它们似乎基于 StdPeripheral 库,需要更新,以便我们可以通过 Cube 和 HAL 在新(和旧)设备上使用它们。作为一个社区,我们可以更有效地做到这一点。有什么想法和接受者吗?
玩得开心。
The canonical Solution
Update your Cube and HAL libraries to the latest
Generate a cube project
Setup all your peripherals in the dialogs
Generate code
Compile
Add your application
Test & Debug
Optimise
Release
您只需要注意不同系列的类似外围设备存在不一致,例如
F0 上的 ADC 与 F1 和 F4 不同。
F3 可能具有 16 位 ADC。
You are probably doing everything correctly other than RTFM. (Read the Fineprint in the Manual)
除非您想对抗 UART,否则最好建议您实现使用标准 USB 电缆的虚拟端口演示。让 ST 成为设备。
获取 STCube 的副本,在项目/外设目录中查找 USB 和虚拟兼容性。 HAL库也是一样的,也有这段代码。
在任何 Discovery 板上工作时,启动 STM32 Cube 的副本(不含 ST http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1533/PF259242?sc=stm32cube),并在那里创建您的配置。它向您展示了哪些内容已被使用,哪些内容是免费的,这是一个很棒的工具,并且还将设置 USB 作为奖励。
然后使用代码生成器创建KEIL项目的骨架。编译,运行添加您的应用程序代码并:-)
你可能想看看这里Embitz.org http://www.emblocks.org/web/他们有一个很棒的 IDE,甚至更好的 F429iDisco 示例或ST AC6集成开发环境 http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1533/PF261797 and ST page http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1533了解更多示例。这些 IDE 没有代码大小限制,这是您在该设备上使用 LCD、触摸屏等时会遇到的问题。
其余答案
不幸的是,STM 必须将这一发现的大部分引脚分配给板上的 LCD、触摸和存储芯片。只剩下很少的异步功能了——他们可能认为 USB 就可以了。
Q1) - 按照通常标记的方式,您需要通过将 Rx 连接到 TX 来“交叉”,反之亦然。
通过在 UART 引脚上连接“环回”来检查您的代码并检查 LED。
Q2) - STM Cube 将为您生成一个可用的 Keil 项目。
有可以编译并运行的演示代码
stm32cube_fw_f4_v130\STM32Cube_FW_F4_V1.3.0\Projects\STM32F429I-Discovery\Examples\UART 以及 Keil 项目 (MDK-ARM)。您需要更改为 UART5 - 它配置为 USART1 PA9(Tx) /PA10(RX),工作后交换到 UART5,或在本地测试 USART1 -> UART5。
通过将 RX 连接到 Tx 进行测试,设置 Rx,然后设置 TX 一个字符串,所有这些都应该有效,并且 Rxbuffer 应该反映这一点。
然后连接到您的适配器,一切都应该可以工作。LED 应该闪烁。
如果不是,则交换 Tx 和 Rx。
检查 DB9 上的环回。
如果 DB9 上有调制解调器或 PC,则需要先管理调制解调器控制信号,然后才能进行任何操作。 (RTC、CTS、DCD、DTR、DTE)See here http://www.tldp.org/HOWTO/Serial-HOWTO-19.html。覆盆子为你做到了这一点。
断开 STM 与适配器的连接,并检查 PC 上 DB9 和 Tx Rx 引脚上的环回。
如果到这里,STM 会闪烁一个 LED,而远程控制另一个 LED,则说明存在奇偶校验、波特率或字长问题。
下面是 407 发现(原始发现) - 抱歉最初没有看到您有 429 - 我们倾向于谈论 F4Discovery 与 F429i-Discovery。现在还有其他基于 F4 的主板。
在 F4-Discovery 板上 - UART5 不可用,与 PC12 上使用 CS43L422(麦克风)的 I2S3D 冲突。与 F429 相同的引脚过载问题
还使用其他 UART 和 USART1。
Either- 配置 USART2 或 USART3
积极的一面是 USARTS 2 和 3 内置了可供您使用的 RTS/CTS 线路。
OR
您需要焊接/拆焊板上的跳线才能禁用麦克风。
我已经在几个不同的 STM32 板上使用 USARTS 生成了许多项目,它们都可以完美运行。不幸的是,HAL 程序员只提供固定长度的驱动程序,有或没有超时,没有 Readline 接口。