资讯详情

stm32 中断串口控制LED灯

#include "stm32f10x.h" #include "usart.h" #include "led.h" #include <stdio.h>

/*********************************************************************** ***********************************************************************/ void RCC_Configuration(void); void GPIO_Configuration(void); void N_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; // U1_SEND(); printf("绿灯灭,红灯亮\n"); 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("绿灯亮,红灯灭\n"); 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进制) /***************************************************************************** *****************************************************************************/

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

-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司