STM32
直播中

莫循虎

8年用户 1032经验值
私信 关注
[问答]

如何去实现stm32串口usart1的收发代码呢?

如何去实现STM32串口usart1的收发代码呢?
stm32串口usart1收发代码的现象是怎样的?

回帖(1)

罗丹

2021-12-9 11:50:08
stm32串口usart1收发代码
IC:stm32f103vet6
串口引脚:PA9(TX),PA10(RX)
mian.c

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


uint8_t t;
uint8_t len;
uint16_t times=0;
       
int main(void)
{       
        delay_init();     //延时函数初始化          
        uart_init(115200);         //串口初始化为115200
       
        while(1)
        {
                if(USART_RX_STA&0x8000)  //USART_RX_STA第十六位为1则括号内为1,表示接收完数据
                {                                          
                        len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
                        printf("rn您发送的消息为:rnrn");
                        for(t=0;t                         {
                                USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据
                                while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
                        }
                        printf("rnrn");//插入换行
                        USART_RX_STA=0;
                }else
                {
                        times++;
                        if(times%500==0)printf("请输入数据,以回车键结束n");  
                        delay_ms(10);   
                }
        }         
}


串口现象:
未发送时

  

  

发送信息时:

  
举报

更多回帖

发帖
×
20
完善资料,
赚取积分