STM32寄存器控制串口接收数据并利用的问题 15
voidreceive(){u8t;u8len;if(USART_RX_STA&0x8000){len=USART_RX_STA&0x3fff;//µÃ...
void receive()
{
u8 t;
u8 len;
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];
a=USART1->DR;
while((USART1->SR&0X40)==0);//µÈ´ý·¢ËͽáÊø
}
printf("\r\n\r\n");//²åÈë»»ÐÐ
USART_RX_STA=0;
}
}
int main(void)
{
Stm32_Clock_Init(9); //ϵͳʱÖÓÉèÖÃ
delay_init(72); //ÑÓʱ³õʼ»¯
uart_init(72,9600); //´®¿Ú³õʼ»¯Îª9600
LED_Init(); //³õʼ»¯ÓëLEDÁ¬½ÓµÄÓ²¼þ½Ó¿Ú
while(1)
{
receive();
if (a>50)
LED1=!LED1;
if(a>0&&a<=50)
LED0=!LED0;
}
}
用了原子哥的一些程序 现在我想通过上位机传数据回来 并加以运用 这是我自己测试的一个程序 可是发现 不管我输入什么数据 都只有一个灯会亮 请问大神们 我这样的程序能接收到数据并利用到吗?假如不行 要怎么操作呢?
注释乱码了。。。不过估计大神们还是能看懂
而且我发现 那个灯是写在程序前面那个灯亮 我把两个灯的顺序一换 就变成另一个灯一直亮 表示很不解 展开
{
u8 t;
u8 len;
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];
a=USART1->DR;
while((USART1->SR&0X40)==0);//µÈ´ý·¢ËͽáÊø
}
printf("\r\n\r\n");//²åÈë»»ÐÐ
USART_RX_STA=0;
}
}
int main(void)
{
Stm32_Clock_Init(9); //ϵͳʱÖÓÉèÖÃ
delay_init(72); //ÑÓʱ³õʼ»¯
uart_init(72,9600); //´®¿Ú³õʼ»¯Îª9600
LED_Init(); //³õʼ»¯ÓëLEDÁ¬½ÓµÄÓ²¼þ½Ó¿Ú
while(1)
{
receive();
if (a>50)
LED1=!LED1;
if(a>0&&a<=50)
LED0=!LED0;
}
}
用了原子哥的一些程序 现在我想通过上位机传数据回来 并加以运用 这是我自己测试的一个程序 可是发现 不管我输入什么数据 都只有一个灯会亮 请问大神们 我这样的程序能接收到数据并利用到吗?假如不行 要怎么操作呢?
注释乱码了。。。不过估计大神们还是能看懂
而且我发现 那个灯是写在程序前面那个灯亮 我把两个灯的顺序一换 就变成另一个灯一直亮 表示很不解 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询