作者:羊村长QQ:707703387
硬件平台:STM32F4-DISCORVERY
软件平台:KEIL MDK5.10
由于USART1的引脚被占用,但是可以使用remap重定向,本例中直接使用了USART2,printf,scanf函数也可以用串口[size=+0]接收来实现。
STM32F407xx内嵌四个通用同步/异步接收器(USART1,USART2,USART3 和USART6)和两个通用异步收发器(UART4和UART5)。这6个接口提供异步通信的IrDASIR ENDEC支持,多机通信模式,单线半双工通信模式LIN主/从功能。 USART1和USART6接口能够速度高达10.5 Mbit / s的通信其他可用的接口通信高达5.25bit/s。
USART1,USART2,USART3和USART6还提供硬件管理的CTS,RTS信号,智能卡的模式(ISO7816兼容)和类似的SPI通信能力,所有接口都可以通过DMA控制器。
STM32F4-Discovery板子只需要一根USB电缆,就可以开始STM32F4的软件开发与验证,非常便利。而STM32F4的SysTick,PendSV和SVC,双堆栈更是非常便于使用RTOS,FreeRTOS就是其中的一个典型的应用,对于日益复杂的嵌入式系统开发与维护非常有利。在FreeRTOS开发过程中,利用其高速串口输出系统调试信息也很常见,一般的做法是将C语言系统的printf()函数重定向到串口上,在ST厂家的函数库举例中有专门的一个目录。这里要列出的3点项目设置是在实现过程中需要注意的:
1. HSE_VALUE 这个值的定义在stm32f4xx.h中,默认是25MHz,要根据板子用的外部晶振速率进行调整,STM32F4-Discovery用的就是8MHz.
2. EWARM项目务必要选择使用Full Library 这个选择在"General Options" -> "Library Configuration"中。
3. STM32F4-Discovery使用ST-Link调试接口!创建新项目时,注意2点即可:
4.关于烧录: 1)ST-Link的接口选项只能是SWD 2)在"Debugger"->"Download"中必须打开"Use flash loader(s)"
实验结果:

|