1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

標題: 基于stm32f103藍牙控制雙燈泡 [打印本頁]

作者: 01234566543210    時間: 2018-1-11 11:35
標題: 基于stm32f103藍牙控制雙燈泡
#include "includes.h"
#include "timer.h"
#include "sys.h"
#include "usart.h"
#include "key.h"
#include "stm32f10x_tim.h"
/* Private function prototypes -----------------------------------------------*/
void RCC_Configuration(void);
//void NVIC_Configuration(void);
//void  USART_Configuration(void);
void PrintCom(USART_TypeDef* USARTx, uint8_t *Data);
extern void Delay_ms(unsigned long i);
extern void  LD3320_main(void);
/***********************************************************
* 名    稱: 主函數
* 功    能:        程序入口
* 入口參數:  無
* 出口參數:        無
* 說    明:        無
* 調用方法:         無
**********************************************************/
int main(void)
{
  /* System Clocks Configuration */
//  RCC_Configuration();  //外設時鐘配置
        vu8 key=0;       
        vu8 a;
//        delay_init();                     //延時函數初始化          
        KEY_Init();          //初始化與按鍵連接的硬件接口
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  uart_init(9600);
//        LD3320_main();                                //LD3320執行函數
        TIM3_PWM_Init(899,0);         //不分頻。PWM頻率=72000000/900=80Khz
       
        while(1)
        {
                key=KEY_Scan(0);        //得到鍵值
                   if(key)
                {               
                        if(key==KEY0_PRES)
                               
                                {        a=1;}
                               
                        if(key==KEY1_PRES)
                               
                                {        a=3;}
                               
                        if(key==WKUP_PRES)

                                {        a=2;}
                         
////                                 default:
////                                                break;
   }
                  switch(a)       
                                {       
                                        case 1:       
                                        {
                                                if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1))
                                                {         TIM_SetCompare2(TIM3,500);
                                        TIM_SetCompare1(TIM3,500);   }
                                          else
                                                {   TIM_SetCompare2(TIM3,0);
            TIM_SetCompare1(TIM3,0);        }               
                                        }
                                   break;
                                       
                                       
                                        case 2:
                                        {                
                                                Delay_ms(10);         
                     if(USART_RX_STA&0x8000)
                      {                                           
                        USART_RX_STA=0;
                switch(USART_RX_BUF[0])                   /*對結果執行相關操作,客戶修改*/
                                                                         {
                                                                                  case 'a':                        /*命令“流水燈”*/
                                                                                        TIM_SetCompare2(TIM3,500);       
                                                                                             break;
                                                                                         case 'b':       
                                              TIM_SetCompare2(TIM3,0);       
                                      break;
                                                                                         case 'c':       
                                                                                   if( TIM3->CCR2 == 500|TIM3->CCR2 == 1000)                                                                                         
                                                                                         TIM_SetCompare2(TIM3,200);
                                                                                           break;       
                                                                                         case 'd':
                                                                 if( TIM3->CCR2 == 200| TIM3->CCR2 == 500)       
                                                                                        TIM_SetCompare2(TIM3,1000);
                         break;       
                      case 'e':                        /*命令“流水燈”*/
                                                                                        TIM_SetCompare1(TIM3,500);       
                                                                                             break;
                                                                                         case 'f':       
                                              TIM_SetCompare1(TIM3,0);       
                                      break;
                                                                                         case 'g':       
                                                             if( TIM3->CCR1 == 500|TIM3->CCR1 == 1000)                                                                                                                                         
                                                                                         TIM_SetCompare1(TIM3,200);
                                                                                           break;       
                                                                                         case 'h':
                                                                                if( TIM3->CCR1 == 200| TIM3->CCR1 == 500)       
                                                                                        TIM_SetCompare1(TIM3,1000);
                         break;                                                                                                                                                                                  
                                          default:
                                                                                                        break;
                               }

          }

               }
                                        break;
                                 
                                 case 3:
                                 {          LD3320_main();  }
                                         break;
  }
}
//                else Delay_ms(10);
}

/***********************************************************
* 名    稱:void PrintCom(USART_TypeDef* USARTx, uint8_t *Data)
* 功    能:串口數據打印
* 入口參數:  
* 出口參數:
* 說    明:
* 調用方法:
**********************************************************/
void PrintCom(USART_TypeDef* USARTx, uint8_t *Data)
{
       
                while(*Data)
                {
                        USART_SendData(USARTx, *Data++);    /*發送單個數據 */
                        while(USART_GetFlagStatus(USARTx, USART_FLAG_TC)==RESET);/* 檢查指定的USART標志位即RESET=1時發送完成*/
                }                                                                                                       
}

/***********************************************************
* 名    稱:void RCC_Configuration(void)
* 功    能:配置外設時鐘
* 入口參數:  
* 出口參數:
* 說    明:
* 調用方法:
**********************************************************/
void RCC_Configuration(void)
{
  SystemInit();  
  /* Enable USART1, GPIOA, GPIOx and AFIO clocks */
    RCC_APB2PeriphClockCmd( RCC_APB2Periph_USART1 |RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
                         RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD |
                         RCC_APB2Periph_GPIOE, ENABLE); //開啟相關的AHP外設時鐘
  /* Enable USART2 clock */
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
}

/**
  * @brief  Configures the different GPIO ports.
  * @param  None
  * @retval : None
  */


void Delay_ms(unsigned long i)
{     
    while( i--)
       {       

        }
}       




作者: 211209    時間: 2018-6-25 14:09
很好謝謝樓主
作者: jijkf    時間: 2018-10-25 17:38
學習了,嘻嘻
作者: 醬板鴨    時間: 2018-10-26 18:41
666好頂贊




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1