本篇利用参考示例实现串口通信测试: 开发平台:MDK 开发板:APM32F407IG Tiny开发板
下面介绍一下我的理解: APM32F407IG Tiny开发板有多个串口通信接口,其中包括UART和USART。UART是通用异步收发器,而USART是通用同步异步收发器。 在APM32F407IG Tiny开发板中,有几个可用的UART接口,例如UART1和UART2。要使用UART进行通信,您需要将相应的GPIO配置为UART功能,并使用相应的引脚连接。 1.原理图: 2.连接照片: 3.输出结果 4、相关示例(不是官方的): 以下是一个使用UART1进行通信的示例代码: c复制代码
| #include "stm32f4xx.h" |
| |
| void GPIO_Init(void) |
| { |
| GPIO_InitTypeDef GPIO_InitStructure; |
| |
| RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); |
| |
| GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; |
| GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; |
| GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; |
| GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; |
| GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; |
| GPIO_InitStructure.GPIO_AF = GPIO_AF8; |
| GPIO_Init(GPIOA, &GPIO_InitStructure); |
| |
| GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; |
| GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; |
| GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; |
| GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; |
| GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; |
| GPIO_InitStructure.GPIO_AF = GPIO_AF8; |
| GPIO_Init(GPIOA, &GPIO_InitStructure); |
| } |
| |
| int main(void) |
| { |
| NVIC_Configuration(); |
| USART1_Init(); |
| GPIO_Init(); |
| |
| while(1) |
| { |
| // send data through UART1 |
| USART1->TDR = 'H'; |
| |
| // receive data through UART1 |
| while(USART1->TSR != USART1_TSR_TXE); |
| uint8_t data = USART1->RDR; |
| } |
| } |
在上面的示例代码中,我们首先初始化了GPIO引脚,然后将UART1配置为通信模式,并使用相应的引脚连接。在主函数中,我们通过USART1的TDR寄存器发送数据,并使用TSR寄存器和RDR寄存器接收数据。 请注意,以上示例代码仅供参考,并需要根据您的具体需求进行修改。 5、核心代码: 总结: APM32F407IG Tiny开发板确实提供了多个串口通信接口,包括UART和USART。UART是通用异步收发器,用于在设备之间进行异步通信。而USART是通用同步异步收发器,它既可以实现异步通信,也可以实现同步通信。 在APM32F407IG Tiny开发板中,可以通过GPIO配置来实现UART和USART的通信接口。例如,可以使用UART1或UART2进行异步通信,使用USART1进行同步通信。 要进行串口通信,需要先将相应的GPIO配置为串口功能,并使用相应的引脚连接。同时,还需要配置串口的参数,例如波特率、数据位、停止位等。 以上是一些基我能理解的知识的总结,**对您有所帮助。
|