找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3969|回复: 6
打印 上一主题 下一主题
收起左侧

基于stm32的智能手环 原理图PCB与代码资料分享

  [复制链接]
跳转到指定楼层
楼主
已开源,代码详细见附录
Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)


单片机源程序如下:
  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.     /*调节蜂鸣器*/
  33.     HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_4); //开启定时器PWM通道 定时器2 通道3
  34.     __HAL_TIM_SET_COMPARE(&htim4, TIM_CHANNEL_4, 0); //设置PWM的占空比,这里初始化占空比为0
  35.     printf("初始化蜂鸣器\r\n");
  36.    
  37.    
  38.     /*调节屏幕背光*/
  39.     HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_4); //开启定时器PWM通道 定时器2 通道3
  40.     __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4, 70); //设置PWM的占空比,调节背光
  41.     printf("调节背光\r\n");
  42.    
  43.    
  44.    
  45.     printf("初始化寄存器\r\n");
  46. //    HAL_UART_Receive_IT(&huart1, (uint8_t *)&aRxBuffer, 1);    //打开串口接收中断

  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灯的状态,开机后熄灭   
  64.    
  65.     Screen_off_time = sTime.Seconds + 10; //设置自动熄灭屏幕的时间是20秒
  66.         
  67.     if(    Screen_off_time >    59    ) //如果设计的屏幕熄灭实践超过了一分钟就倒退回去
  68.     {
  69.         Screen_off_time = Screen_off_time -60; //得到正确的时间
  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.         //传感器检测   
  82.         Get_Sensor_data();

  83.         /*主界面显示部分*/
  84.         MENU_main();
  85.         
  86.         /*根据按键方向按键按下来进入应用界面*/
  87.         MENU_APP(switch_value);
  88.         
  89.         /*处理后台运行的程序*/
  90.         Background_detection(switch_value);

  91.         /*检测按键以及处理自动熄屏和唤醒屏幕*/
  92.         switch_value = Get_Key_value(1);

  93.         if(    switch_value == 2)
  94.         {
  95.             /*熄灭屏幕*/
  96.             __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4, 0); //设置PWM的占空比,调节背光
  97.             
  98.             set_Screen_off_flag = 0; //代表已经熄灭了屏幕 熄灭屏幕的状态下不对按键等操作进行反应
  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   时间:%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. }
复制代码

所有资料51hei附件下载:
THwatch.7z (15.86 MB, 下载次数: 182)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏6 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:980852 发表于 2021-11-14 15:56 | 只看该作者
元器件都是要贴片的吗,没有热风枪。。
回复

使用道具 举报

板凳
ID:980852 发表于 2021-11-14 15:56 | 只看该作者
楼主666,有没有成品图呢,我也想搞搞
回复

使用道具 举报

地板
ID:194006 发表于 2021-12-1 07:53 来自触屏版 | 只看该作者
如果上个实物图就比较直观
回复

使用道具 举报

5#
ID:986873 发表于 2021-12-1 17:14 | 只看该作者
看看成品图 这样比较清楚
回复

使用道具 举报

6#
ID:651762 发表于 2021-12-6 15:33 | 只看该作者
代码编译起来报错

1.png (37.09 KB, 下载次数: 114)

1.png
回复

使用道具 举报

7#
ID:440585 发表于 2022-9-13 15:30 | 只看该作者
准备做一个试试  有什么不明白的 还望楼主不吝赐教
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表