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;
}
}
用了原子哥的一些程序 现在我想通过上位机传数据回来 并加以运用 这是我自己测试的一个程序 可是发现 不管我输入什么数据 都只有一个灯会亮 请问大神们 我这样的程序能接收到数据并利用到吗?假如不行 要怎么操作呢?
注释乱码了。。。不过估计大神们还是能看懂
而且我发现 那个灯是写在程序前面那个灯亮 我把两个灯的顺序一换 就变成另一个灯一直亮 表示很不解
展开
 我来答
一剑出血
高粉答主

2015-12-02 · 醉心答题,欢迎关注
知道大有可为答主
回答量:5.7万
采纳率:78%
帮助的人:1.7亿
展开全部
“ 可是发现 不管我输入什么数据”

你输入的不会都是ASCII码吧。
追问
我修改了一下程序 删掉了那两句printf 也用了十六进制发送 十六进制显示 可是也还是只有一个灯亮
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式