背景
以下是我的背景,以便您了解我具有哪些相关知识或不具备哪些知识。我完全是这种嵌入式系统的新手。我对电子设备一无所知,我是纯粹的软件人员。
我唯一的嵌入式系统经验是树莓派,它与STM32F4 Discovery非常不同。
我可以使用标准的Linux C库在树莓派上实现UART读/写编程,它连接到一个带有电压转换器IC的USB-to-RS232适配器与PC相连。
我的设备和开发环境
- 一个带有STM32F429ZIT6 MCU的STM32F429I-DISCO板
- 一个USB-to-RS232电缆和一个在树莓派上工作得很好的电压转换器IC。
- Keil uVision 5 IDE。
我想要实现什么
我想在STM32F429 Discovery板上实现一种编程,该编程可以发送/接收来自PC的消息。(例如,向PC发送一个字符串。并且当从PC接收到一个字符串时,点亮板上的LED)
我现在已经完成了什么
现在我已经设置好了我的Keil uVision IDE,并且可以编译/运行闪烁LED示例,我还可以编辑该示例以按我想要的方式控制LED。(例如,在用户按钮被按下时打开LED,在释放按钮时关闭它)
因此,LED部分基本上完成了,缺少的部分是如何使用RS232电缆与STM32F4 Discovery板通信。
我的问题
首先,我想知道我是否正确理解了该板的PIN定义。根据这个数据表,我应该将DB9上的TX引脚连接到PD2(UART5_RX),RX引脚连接到PC12(UART5_TX),VCC引脚连接到3.3V,而DB9上的GND连接到地。这个连接是正确的吗?
有没有关于如何在最新版本的Keil uVision中使用新HAL库上的UART的示例代码?我在网上搜索过,但大多数样例代码或教程都使用了一个叫做
RCC_AHB1PeriphClockCmd
的函数,这个函数似乎在Keil uVision提供的新HAL库中不存在。
更新
我的USB转串口适配器是
067b:2303 Prolific Technology, Inc. PL2303 Serial Port
,附带有电平转换芯片。看起来像这样:连接到树莓派时,我遵循了这个说明,所以芯片上的VCC / GND连接到树莓派上的3.3V / GND,我不确定是否需要这样做。
我所说的“HAL”库是指此
stm32f4xx_hal_usart.c
文件,根据注释中的许可声明,似乎来自STMicroelectronics。尽管此文件中有一些说明,但对我来说仍然很难弄清楚如何使用该驱动程序。例如,我无法区分启用USARTx接口时钟
和启用USART GPIO的时钟
之间的区别,也不知道如何实现这些功能。因此,如果有示例代码,将会非常有帮助,因为我可以将其与这些说明进行比较。