中级会员
 
- 积分
- 219
- 金钱
- 219
- 注册时间
- 2016-9-27
- 在线时间
- 43 小时
|
2金钱
上位机的USART1_TX连接下位机的USART1_RX引脚,下位机的USART1_TX连接上位机的USART1_RX引脚,
两块板子GND相连!为什么不能控制!就是一个简单的上位机控制下位机点灯的实验!
上位机:
#include "stm32f10x.h"
#include "led.h"
#include "delay.h"
#include "beep.h"
#include "usart.h"
#include "key.h"
int main(void)
{
u8 key=0;
LED_Init();
delay_init();
KEY_Init();
BEEP_Init();
uart_init(115200);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
while(1)
{
key=KEY_Scan(0);
{
if(key==1)
{
USART_SendData(USART1,1);//Ïò′®¿ú1·¢Ëíêy¾Y
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//μè′y·¢Ëí½áêø
}
else if(key==2)
{
USART_SendData(USART1,2);//Ïò′®¿ú1·¢Ëíêy¾Y
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//μè′y·¢Ëí½áêø
}
else if(key==4)
{
USART_SendData(USART1,3);//Ïò′®¿ú1·¢Ëíêy¾Y
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//μè′y·¢Ëí½áêø
}
}
}
}
下位机
#include "stm32f10x.h"
#include "led.h"
#include "delay.h"
#include "beep.h"
#include "usart.h"
int main(void)
{
u16 t;
u8 a;
u16 len;
LED_Init();
delay_init();
BEEP_Init();
uart_init(115200);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
while(1)
{
if(USART_RX_STA&0x8000)
{
len=USART_RX_STA&0x3fff;//μÃμ½′Ë′νóêÕμ½μÄêy¾Y3¤¶è
for(t=0;t<len;t++)
{
a=USART_RX_BUF[t];
if(a==1)
{
LED0=0;
}
if(a==2)
{
LED1=0;
}
if(a==3)
{
LED0=1;
LED1=1;
}
if(a==4)
{
LED0=0;
LED1=0;
}
}
USART_RX_STA=0;
}
}
}
用串口调试助手,完全没问题!大神求解!
|
|