这里先给出程序源码:
调用库函数:
#include "sys.h"
#include "usart.h"
#include "led.h"
#include "delay.h"
int main()
{
u8 i;
u8 len;
u32 times = 0;
//中断分组
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
//初始化延时函数
delay_init(84);
//初始化串口
uart_init(115200);
//初始化led
LED_Init();
//循环
LED0 = 0;
while (1)
{
//检验接受标志
//若接收到
if (USART_RX_STA & 0x8000) //位15判定是否接收到数据
{
//确定接受信息的长度
len = USART_RX_STA & 0x3fff; //位0到位14与1位与
//输出提示信息
printf("\r\n您发送的消息为:\r\n");
//接受信息并串口输出
for (i = 0; i < len; i++) {
USART_SendData(USART1, USART_RX_BUF[i]); //使用库函数SendData向串口1发送数据
//直到接收结束为止
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) != SET); //使用库函数检验发送是否接受完成
}
printf("\r\n\r\n");
//检验标志复位
USART_RX_STA = 0;