找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3999|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

基于stm32的智能手環(huán) 原理圖PCB與代碼資料分享

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:972709 發(fā)表于 2021-10-17 17:44 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
已開(kāi)源,代碼詳細(xì)見(jiàn)附錄
Altium Designer畫(huà)的原理圖和PCB圖如下:(51hei附件中可下載工程文件)


單片機(jī)源程序如下:
  1. int main(void)
  2. {
  3.   /* USER CODE BEGIN 1 */
  4. //    float pitch,roll,yaw;         //歐拉角

  5.    
  6.     unsigned char switch_value; //獲取到的按鍵值
  7. //    unsigned long    STEPS = 0;

  8.   /* USER CODE END 1 */

  9.   /* MCU Configuration--------------------------------------------------------*/

  10.   /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  11.   HAL_Init();

  12.   /* USER CODE BEGIN Init */
  13.    
  14.   /* USER CODE END Init */

  15.   /* Configure the system clock */
  16.   SystemClock_Config();

  17.   /* USER CODE BEGIN SysInit */

  18.   /* USER CODE END SysInit */

  19.   /* Initialize all configured peripherals */
  20.   MX_GPIO_Init();
  21.   MX_DMA_Init();
  22.   MX_ADC1_Init();
  23.   MX_I2C1_Init();
  24.   MX_SPI1_Init();
  25.   MX_TIM2_Init();
  26.   MX_TIM4_Init();
  27.   MX_USART1_UART_Init();
  28.   MX_RTC_Init();
  29.   MX_I2C2_Init();
  30.   /* USER CODE BEGIN 2 */
  31.    
  32.     /*調(diào)節(jié)蜂鳴器*/
  33.     HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_4); //開(kāi)啟定時(shí)器PWM通道 定時(shí)器2 通道3
  34.     __HAL_TIM_SET_COMPARE(&htim4, TIM_CHANNEL_4, 0); //設(shè)置PWM的占空比,這里初始化占空比為0
  35.     printf("初始化蜂鳴器\r\n");
  36.    
  37.    
  38.     /*調(diào)節(jié)屏幕背光*/
  39.     HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_4); //開(kāi)啟定時(shí)器PWM通道 定時(shí)器2 通道3
  40.     __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4, 70); //設(shè)置PWM的占空比,調(diào)節(jié)背光
  41.     printf("調(diào)節(jié)背光\r\n");
  42.    
  43.    
  44.    
  45.     printf("初始化寄存器\r\n");
  46. //    HAL_UART_Receive_IT(&huart1, (uint8_t *)&aRxBuffer, 1);    //打開(kāi)串口接收中斷

  47.     /*主顯示界面*/
  48.     MENU_init();
  49.    
  50.     printf("初始化界面\r\n");
  51.    
  52.    
  53.    
  54.     MPU_Init();                    //初始化MPU6050
  55.     while(mpu_dmp_init())//初始化DMP
  56.     {
  57.         printf("error\r\n");
  58.         HAL_Delay(10);
  59.     }
  60.    
  61.     printf("初始化陀螺儀\r\n");
  62.    


  63.     HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET); //更新LED燈的狀態(tài),開(kāi)機(jī)后熄滅   
  64.    
  65.     Screen_off_time = sTime.Seconds + 10; //設(shè)置自動(dòng)熄滅屏幕的時(shí)間是20秒
  66.         
  67.     if(    Screen_off_time >    59    ) //如果設(shè)計(jì)的屏幕熄滅實(shí)踐超過(guò)了一分鐘就倒退回去
  68.     {
  69.         Screen_off_time = Screen_off_time -60; //得到正確的時(shí)間
  70.     }
  71.    
  72.     usart_print_flag = 0;
  73.    
  74.   /* USER CODE END 2 */

  75.   /* Infinite loop */
  76.   /* USER CODE BEGIN WHILE */
  77.     while (1)
  78.   {
  79.     /* USER CODE END WHILE */

  80.     /* USER CODE BEGIN 3 */

  81.         //傳感器檢測(cè)   
  82.         Get_Sensor_data();

  83.         /*主界面顯示部分*/
  84.         MENU_main();
  85.         
  86.         /*根據(jù)按鍵方向按鍵按下來(lái)進(jìn)入應(yīng)用界面*/
  87.         MENU_APP(switch_value);
  88.         
  89.         /*處理后臺(tái)運(yùn)行的程序*/
  90.         Background_detection(switch_value);

  91.         /*檢測(cè)按鍵以及處理自動(dòng)熄屏和喚醒屏幕*/
  92.         switch_value = Get_Key_value(1);

  93.         if(    switch_value == 2)
  94.         {
  95.             /*熄滅屏幕*/
  96.             __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4, 0); //設(shè)置PWM的占空比,調(diào)節(jié)背光
  97.             
  98.             set_Screen_off_flag = 0; //代表已經(jīng)熄滅了屏幕 熄滅屏幕的狀態(tài)下不對(duì)按鍵等操作進(jìn)行反應(yīng)
  99.         }
  100.         
  101. //        /*陀螺儀獲取角度部分*/
  102. //        if(    mpu_dmp_get_data(    &pitch,    &roll,    &yaw    )    ==    0    )
  103. //        {
  104. //            if(usart_print_flag)
  105. //            {
  106. //                printf("%.2f %.2f %.2f \r\n",pitch,roll,yaw);
  107. //            }
  108. //        }

  109. //        if(usart_print_flag)
  110. //        {
  111. //            printf("溫度:%.1f 濕度:%.1f 電量百分比:%d    按鍵值:%d  日期:%d:%d:%d   時(shí)間:%d:%d:%d \r\n",
  112. //                                temperature,humidity,    Battery_voltage    ,   
  113. //                                switch_value,   
  114. //                                sDate.Year,    sDate.Month,    sDate.Date,   
  115. //                                sTime.Hours, sTime.Minutes, sTime.Seconds);
  116. //        }

  117.   }
  118.   /* USER CODE END 3 */
  119. }
復(fù)制代碼

所有資料51hei附件下載:
THwatch.7z (15.86 MB, 下載次數(shù): 182)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏6 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:980852 發(fā)表于 2021-11-14 15:56 | 只看該作者
元器件都是要貼片的嗎,沒(méi)有熱風(fēng)槍。。
回復(fù)

使用道具 舉報(bào)

板凳
ID:980852 發(fā)表于 2021-11-14 15:56 | 只看該作者
樓主666,有沒(méi)有成品圖呢,我也想搞搞
回復(fù)

使用道具 舉報(bào)

地板
ID:194006 發(fā)表于 2021-12-1 07:53 來(lái)自觸屏版 | 只看該作者
如果上個(gè)實(shí)物圖就比較直觀
回復(fù)

使用道具 舉報(bào)

5#
ID:986873 發(fā)表于 2021-12-1 17:14 | 只看該作者
看看成品圖 這樣比較清楚
回復(fù)

使用道具 舉報(bào)

6#
ID:651762 發(fā)表于 2021-12-6 15:33 | 只看該作者
代碼編譯起來(lái)報(bào)錯(cuò)

1.png (37.09 KB, 下載次數(shù): 114)

1.png
回復(fù)

使用道具 舉報(bào)

7#
ID:440585 發(fā)表于 2022-9-13 15:30 | 只看該作者
準(zhǔn)備做一個(gè)試試  有什么不明白的 還望樓主不吝賜教
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表