STM32
直播中

王建

8年用户 165经验值
私信 关注
[问答]

请问可以把USART_RX_BUF的第一个数字赋值给一个变量m,让m去控制led?

我想从上位机给开发板发送信息,控制开发板上的led,发送1红灯亮,发送2蓝灯亮,我是不是可以把 USART_RX_BUF的第一个数字赋值给一个变量m,让m去控制led呢?求帮助。。。试了很多次都不行。。。。。

回帖(4)

陈娟

2019-7-9 06:50:03
可以的.
举报

傅姁妮

2019-7-9 07:01:54
 while(1) 
 { 
if(USART_RX_STA&0x80)
{
    m=USART_RX_BUF[0];
 deng(m);//控制灯亮的子函数。
   
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(times%5000==0)
{
printf("nMiniSTM32开发板 串口实验n");
printf("发烧友@ALIENTEKnnn");
}
if(times%200==0)printf("请输入数据,以回车键结束n");  
if(times%30==0)LED0=!LED0;//闪烁LED,提示系统正在运行.
delay_ms(10); }
  }
 }
 void deng(u8 g)
{
if(g)
{
 switch (g)
 {
 case 1:
 
LED0=!LED0;    break;
case 2:
      
LED1=!LED1;     break;
case 3:
     
 LED1=!LED1; 
  LED0=!LED0; break;
}
  }
}
就是在原子哥的函数里加了一个赋值语句和控制函数。不怎么行,请原子哥帮忙看看。
举报

任黎平

2019-7-9 07:11:12
ASCII的0,其值为0X30.
举报

李惠英

2019-7-9 07:25:12
谢谢原子哥    搞出来了      就这里一直没想起来
举报

更多回帖

发帖
×
20
完善资料,
赚取积分