×
单片机 > 单片机程序设计 > 详情

stm32 中断串口控制LED灯

发布时间:2020-05-28 发布时间:
|
#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开发板,参考正点原子部分子程序

关键字:stm32  中断串口  LED灯 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
MSP430F5529 上手小例程2