久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2783|回復: 3
收起左側

基于stm32f103藍牙控制雙燈泡

[復制鏈接]
ID:274721 發表于 2018-1-11 11:35 | 顯示全部樓層 |閱讀模式
#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--)
       {       

        }
}       



評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:251082 發表于 2018-6-25 14:09 | 顯示全部樓層
很好謝謝樓主
回復

使用道具 舉報

ID:259898 發表于 2018-10-25 17:38 | 顯示全部樓層
學習了,嘻嘻
回復

使用道具 舉報

ID:415948 發表于 2018-10-26 18:41 | 顯示全部樓層
666好頂贊
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人伊人 | 日韩有码一区二区三区 | 97偷拍视频 | 日韩av在线一区二区 | 久综合| 久久欧美精品 | 日韩国产中文字幕 | av入口| 一区二区在线观看免费视频 | 久久久久久一区 | 国产成人免费视频网站高清观看视频 | 久久综合国产 | 精品国产一级 | www.激情.com| 午夜精品久久久久久久星辰影院 | 91原创视频 | 综合久久国产 | 国产精品成人一区二区三区吃奶 | 国产日韩精品久久 | 久优草 | 亚洲 欧美 日韩在线 | 久久成人一区 | www.欧美视频 | 亚洲精品影院 | 日韩欧美在线一区 | 国产日韩欧美一区二区 | 亚洲精品成人 | 国产精品一区二 | 色综合色综合色综合 | 欧洲一级毛片 | 日韩欧美亚洲 | 久久国色| 午夜欧美a级理论片915影院 | 国产日产精品一区二区三区四区 | 欧美亚洲视频 | 亚洲91av| 久久r精品| 亚洲欧美日韩精品久久亚洲区 | 91深夜福利视频 | 搞黄网站在线观看 | 午夜国产一级片 |