中级会员
- 积分
- 364
- 金钱
- 364
- 注册时间
- 2016-8-23
- 在线时间
- 71 小时
|
以前叫别人写了个串口控制程序,被坑了,现在理解了串口通信过程,感觉不值那个价钱,为了让才入门的朋友少走弯路,自己简单改了个串口控制LED灯亮灭的程序,希望给入门朋友参考。
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
int main(void)
{
u8 t; u8 len;
u16 times=0;
Stm32_Clock_Init(9);
delay_init(72);
uart_init(72,9600);
LED_Init();
while(1)
{
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];
while((USART1->SR&0X40)==0);
}
printf("\r\n\r\n");
USART_RX_STA=0;
}
-----------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------
if(!(strcmp(USART_RX_BUF,"LED1亮"))) //strcmp C语言关键字
{
LED1=0;
memset(USART_RX_BUF,0,strlen(USART_RX_BUF)); // memset,strlen C语言关键字
}
else if(!(strcmp(USART_RX_BUF,"LED1灭")))
{
LED1=1;
memset(USART_RX_BUF,0,strlen(USART_RX_BUF));
}
------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------
else
{
times++;
if(times%200==0)printf("请输入数据,以回车键结束\r\n");
delay_ms(10);
}
if(times%20==0)
{
LED0=!LED0;
}
}
}
|
|