实验4 串口实验+ OLED
while(1)
{
if(USART_RX_STA&0x8000)
{
len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
printf("\r\n您发送的消息为:\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\n精英STM32开发板 串口实验\r\n");
printf("正点原子@ALIENTEK\r\n\r\n");
}
if(times%200==0)printf("请输入数据,以回车键结束\n");
if(times%30==0)LED0=!LED0;//闪烁LED,提示系统正在运行.
delay_ms(10);
}
OLED_ShowString(0,2,USART_RX_BUF); //接收到的数据
OLED_ShowNum(32,4,len,2,16); //接收的长度
OLED_ShowNum(0,4,USART_RX_STA,2,16); //接收状态标记
// redata=USART_ReceiveData(USART1);
// OLED_ShowNum(64,4,redata,2,16); // ? 10
OLED_ShowCHinese(0,0,0);//Z
OLED_ShowCHinese(18,0,1);//X
OLED_ShowCHinese(36,0,2);//C
OLED_ShowCHinese(54,0,3);//电
OLED_ShowCHinese(72,0,4);//子
OLED_ShowCHinese(90,0,5);//科
OLED_ShowCHinese(108,0,6);//技
OLED_ShowString(0,6,"ASCII:");
OLED_ShowString(63,6,"CODE:");
OLED_ShowChar(48,6,t2);//显示ASCII字符
t2++;
if(t2>'~')t2=' ';
OLED_ShowNum(103,6,t2,3,16);//显示ASCII字符的码值
LED1=!LED1;
delay_ms(800);
}
|