我想通过给串口发送数据来控制绿灯,代码是通过光盘里面的代码改的,数据是发出去了,但不能控制绿灯额,这怎么回事呀?请原子大哥指教,代码如下:
int main(void)ffice ffice" />
{
u8 t;
u8 len;
u16 times=0;
u16 setval=0;
u16 temp0;
u16 temp1;
Stm32_Clock_Init(9); //系统时钟设置
delay_init(72); //延时初始化
uart_init(72,9600); //串口初始化为9600
LED_Init(); //初始化与LED连接的硬件接口
while(1)
{
if(USART_RX_STA&0x80)//如果接收完成
{
len=USART_RX_STA&0xffice:smarttags" />3f;//得到此次接收到的数据长度
if(len<3)//限制数据长度不能超过3
{
//printf("\n您发送的消息为:\n");
for(t=0;t<len;t++)
{
if(temp0==0)
{
temp0=USART_RX_BUF[t];
setval=temp0;
}
/*else if(t==1)
{
temp0<<=8;
temp1=USART_RX_BUF[t];
setval=temp0+temp1;
}*/
USART1->DR=USART_RX_BUF[t];
while((USART1->SR&0X40)==0);//等待发送结束
}
printf("\n\n");//插入换行
USART_RX_STA=0;
}
//return setval;
}else
{
times++;
if(times%30==0)LED0=!LED0;//闪烁LED,提示系统正在运行.
if(setval==0x0001) LED1=!LED1;//绿灯闪烁
//if(setval==0x0110) LED1=0;//绿灯常亮
delay_ms(10);
}
}
}
这个程序目的是,当我串口发送1的时候,应该能够是绿灯变成闪烁的状态,可是现在绿灯一直是灭的,点不亮额…… |