7. TPBasic_STM32F405RGT6的串口使用

一、什么是TPBasic_STM32F405RGT6最小系统板

TPBasic_STM32F405RGT6最小系统板是基于STM32F405RGT6芯片开发制作的最小系统板,方便开发与集成使用。

二、利用TPBasic_STM32F405RGT6最小系统板完成串口通讯


1、具体要求

利用TPBasic_STM32F405RGT6最小系统板完成通过串口1和上位机对话,STM32在收到上位机发过来的字符串(以回车换 行结束)后,原原本本的返回给上位机。同时每隔一定时间,通过串口1输出一段信息到电脑。

2、所需器件


  • TPBasic_STM32F405RGT6最小系统板 一块
  • 杜邦线 若干根
  • USB转TTL串口转换模块 一块

三、制作主要过程


1、制作流程

将按键用杜邦线接在PC4与地之间,是按下按键IO口变为低电平

将LED的正极接在3.3V电源处,负极接在PC11上,当IO口变为低电平时LED灯亮起,当IO口为高电平时LED灯灭。

2、主要代码


#include "sys.h"
#include "delay.h"
#include "usart.h"

int main(void)
{

        u8 t;
        u8 len;
        u16 times=0;
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
        delay_init(168);                //延时初始化
        uart_init(115200);      //串口初始化波特率为115200
        while(1)
        {
                if(USART_RX_STA&0x8000)
                {
                        len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
                        printf("\r\n您发送的消息为:\r\n");
                        for(t=0;t<len;t++)
                        {
                                USART_SendData(USART1, USART_RX_BUF[t]);         //向串口1发送数据
                                while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
                        }
                        printf("\r\n\r\n");//插入换行
                        USART_RX_STA=0;
                }else
                {
                        times++;
                        if(times%5000==0)
                        {
                                printf("\r\nTPBASIC STM32F407最小系统板 串口实验\r\n");
                        }
                        if(times%200==0)printf("请输入数据,以回车键结束\r\n");
                        delay_ms(10);
                }
        }
}