串口程序的理解
。。。学串口没想到要了解这么多
了解复用的概念与使用:https://www.cnblogs.com/action0/p/12740232.html
了解中断NVIC的概念与使用:https://www.cnblogs.com/action0/p/12740610.html
了解串口的使用:https://www.cnblogs.com/action0/p/12740916.html
对于串口接收数据的主程序的理解
#include "sys.h" #include "usart.h" #include "delay.h" #include "led.h" int main(void) { u8 t; u8 len; u16 times=0; delay_init(); //延时函数初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置中断分组 uart_init(9600); //串口初始化为 9600 LED_Init(); //初始化与 LED 连接的硬件接口 while(1) { if(USART_RX_STA&0x8000) { len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度 printf("\r\n 您发送的消息为:\r\n"); for(t=0;t<len;t++)//发送数组内的存储数据 { USART1->DR=USART_RX_BUF[t]; while((USART1->SR&0X40)==0);//等待发送结束 } printf("\r\n\r\n");//插入换行 USART_RX_STA=0; }else { times++; if(times%5000==0) { printf("\r\nALIENTEK MiniSTM32 开发板 串口实验\r\n"); printf("正点原子@ALIENTEK\r\n\r\n\r\n"); } if(times%200==0)printf("请输入数据,以回车键结束\r\n"); if(times%30==0)LED0=!LED0;//闪烁 LED,提示系统正在运行. delay_ms(10); } } }