两个
STM32串口
通信,按键后将数据发送显示在另一方的LCD上,怎么发送一次,要按下复位键,对方才能显示??
您好:
我在学习中遇到了如下问题希望你能予以帮助,我将不胜感激。
两个STM32串口通信,按键后将数据发送显示在另一方的LCD上,怎么发送一次,要按下复位键,对方才能显示??
串口助手加上发送新行在单个的STM32上能正确工作,但不发送新行,将不能结束接收,一直等待接收。
显示是LGDP4532驱动。软件环境是MDK3.8
具体实现代码在附件中。。。
读写函数:
u8* Usart_read(void)
{
u8 *p,*q,t,len;
len=0;
p=q;
if(USART_RX_STA&0x80)
{
len=USART_RX_STA&0x3f;//得到此次接收到的数据长度
for(t=0;tDR=USART_RX_BUF[t];
while((USART1->SR&0X40)==0);
}
USART_RX_STA=0;
}
return p;
}
u8 Usart_write(u8 *p)
{
u8 len;
len=0;
for(;lenDR=USART_RX_BUF[len];
while((USART1->SR&0X40)==0);
}
return len;
}
u8 Usart_scan(u8 *p) //1:zuoz, 2:youz, 3:qian, 4:hout, 5:ting, 0:没有信号
{
u8 flag;
flag=0;
p++;
if(*p=='1')flag=1;
else if(*p=='2')flag=2;
else if(*p=='3')flag=3;
else if(*p=='4')flag=4;
else if(*p=='5')flag=5;
return flag;
}
主函数:
int main(void)
{
u8 len,len1;
u8 *buf;
*buf=0;
len=0;
len1=0;
Stm32_Clock_Init(9); //系统时钟设置
uart_init(72,9600); //串口初始化为9600
delay_init(72); //延时初始化
LCD_Init();
LED_Init(); //初始化与LED连接的硬件接口
ZUOYOU_Init(); //电机初始化
KEY_Init(); //按键初始化
while(1)
{
len1=KEY_Scan(0);
if(len1)
{
switch(len1)
{
case KEY_1:Usart_write("1111");break;
case KEY_2:Usart_write("2222");break;
case KEY_3:Usart_write("3333");break;
case KEY_4:Usart_write("4444");break;
}
len1=0;
}
buf=Usart_read();
if(*buf=='1'||*buf=='2'||*buf=='3'||*buf=='4'||*buf=='5')
{
LCD_ShowString(30,90,200,16,16,buf);
len=Usart_scan(buf);
switch(len)
{
case 0:LCD_ShowString(30,50,200,16,16,"xian zai shi ling ");break;
case 1:LCD_ShowString(30,50,200,16,16,"zheng zai zuo zhuan");LED1=0;LED2=0;LED3=0;break;
case 2:LCD_ShowString(30,50,200,16,16,"zheng zai you zhuan");LED1=0;LED2=0;LED3=0;break;
case 3:LCD_ShowString(30,50,200,16,16,"zheng zai qian jin ");break;
case 4:LCD_ShowString(30,50,200,16,16,"zheng zai hou tui ");break;
case 5:LCD_ShowString(30,50,200,16,16,"zheng zai ting zhi ");break;
default:LCD_ShowString(30,50,200,16,16,"chu cuo le ");break;
}
LCD_ShowString(30,70,200,16,16,buf);
len=0;
}
}
}
具体的实现代码在此处:[td]两个STM32串口通信,按键后将数据发送显示在另一方的LCD上http://bbs.elecfans.com/forum.php?mod=viewthread&tid=431873&fromuid=1206673(出处: 中国
电子技术
论坛)
[/td]
一周热门 更多>