微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM32之串口通信

STM32之串口通信

时间:11-24 来源:互联网 点击:

#ifdef EN_USART1_RX //如果使能了接收

//使能接收中断

USART1->CR1|=1<8; //PE中断使能

USART1->CR1|=1<5; //接收缓冲区非空中断使能

MY_NVIC_Init(3,3,USART1_IRQChannel,2);//组2,最低优先级

#endif

}

主函数

#include

#include"common.h"

int main(void)

{

u8 t;

u8 len;

u16 times=0;

Stm32_Clock_Init(9); //系统时钟设置

delay_init(72); //延时初始化

uart_init(72,9600); //串口初始化为9600

while(1)

{

if(USART_RX_STA&0x80)

{

len=USART_RX_STA&0x3f;//得到此次接收到的数据长度

printf("n您发送的消息为:n");

for(t=0;t

{

USART1->DR=USART_RX_BUF[t];

while((USART1->SR&0X40)==0);//等待发送结束

}

printf("nn");//插入换行

USART_RX_STA=0;

}else

{

times++;

if(timesP00==0)

{

printf("n 简单的串口实验n");

}

if(times 0==0)printf("请输入数据,以回车键结束n");

delay_ms(10);

}

}

}

实验现象:



Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top