微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > stm32 中断串口控制LED灯

stm32 中断串口控制LED灯

时间:12-01 来源:互联网 点击:
#include "stm32f10x.h"

#include "usart.h"
#include "led.h"
#include

/***********************************************************************
***********************************************************************/
void RCC_Configuration(void);
void GPIO_Configuration(void);
void NVIC_Configuration(void);
//void delay(vu32 nCount) //软件延时
// {
// for(; nCount != 0; nCount--);
// }
/***********************************************************************
************************************************************************/

main()
{
u8 a;

RCC_Configuration();//系统时钟配置

NVIC_Configuration();//中断配置

GPIO_Configuration();//GPIO口配置

LED_Init();

while(1)
{
while(usart_rx_sta&0x80)
{
a=usart_rx_buf[1];
if(a == 0x01)
{
GPIO_WriteBit(GPIOD,GPIO_Pin_2,Bit_SET);
GPIO_WriteBit(GPIOA,GPIO_Pin_8,Bit_RESET);
// usart_rx_sta=0;
// usart_rx_time=0;
// usart_tx_buf[0]=0x01; //将接收到的串口数据,发送出
// usart_tx_time=1;
// USART1_SEND();
printf("绿灯灭,红灯亮");
usart_rx_buf[1]=0x00;
}
if(a == 0x02)
{
GPIO_WriteBit(GPIOD,GPIO_Pin_2,Bit_RESET);
GPIO_WriteBit(GPIOA,GPIO_Pin_8,Bit_SET);
// usart_rx_sta=0;
// usart_rx_time=0;
// usart_tx_buf[0]=0x02; //将接收到的串口数据,发送出
// usart_tx_time=1;
// USART1_SEND();
printf("绿灯亮,红灯灭");
usart_rx_buf[1]=0x00;
}
else
{
usart_rx_sta=0;
usart_rx_time=0;
}
}
}
}
//发送AA 01 AB BB(注:串口助手发 使用16进制);绿灯灭,红灯亮(注:串口助手收 不使用16进制)
//发送AA 02 A8 BB(注:串口助手发 使用16进制);绿灯亮,红灯灭(注:串口助手收 不使用16进制)
/*****************************************************************************
*****************************************************************************/

注:使用的ALIENTEK开发板,参考正点原子部分子程序

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top