基于STM32的实验室点灯大师

发布者:那是一条路都最新更新时间:2022-08-19 来源: csdn关键字:STM32  实验室 手机看文章 扫描二维码
随时随地手机看文章

在这里插入图片描述
在这里插入图片描述

/* USER CODE BEGIN Header */

/**

  ******************************************************************************

  * @file           : main.c

  * @brief          : Main program body

  ******************************************************************************

  * @attention

  *

  *

© Copyright (c) 2021 STMicroelectronics.

  * All rights reserved.

  *

  * This software component is licensed by ST under BSD 3-Clause license,

  * the "License"; You may not use this file except in compliance with the

  * License. You may obtain a copy of the License at:

  *                        opensource.org/licenses/BSD-3-Clause

  *

  ******************************************************************************

  */

/* USER CODE END Header */

/* Includes ------------------------------------------------------------------*/

/**初始化引脚和32基础设置**/

#include "main.h"

#include "gpio.h"


/* Private includes ----------------------------------------------------------*/

/* USER CODE BEGIN Includes */

/**利用宏定义定义32引脚 高(on)或者低(off)**/

#define led0on    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_0, GPIO_PIN_RESET)

#define led1on    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_1, GPIO_PIN_RESET)

#define led2on    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_2, GPIO_PIN_RESET)

#define led3on    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_3, GPIO_PIN_RESET)

#define led4on    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_4, GPIO_PIN_RESET)

#define led5on    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_5, GPIO_PIN_RESET)

#define led6on    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_6, GPIO_PIN_RESET)

#define led7on    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_7, GPIO_PIN_RESET)



#define led0off    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_0, GPIO_PIN_SET)

#define led1off    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_1, GPIO_PIN_SET)

#define led2off    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_2, GPIO_PIN_SET)

#define led3off    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_3, GPIO_PIN_SET)

#define led4off    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_4, GPIO_PIN_SET)

#define led5off    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_5, GPIO_PIN_SET)

#define led6off    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_6, GPIO_PIN_SET)

#define led7off    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_7, GPIO_PIN_SET)

#define ledaoff    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,GPIO_PIN_SET)//PC全部引脚为高(原理图是低平点亮 高电平灭)


/**利用宏定义设置时间**/

#define time    100



void gd() //关闭灯

{

ledaoff;

}




void lsd() //流水灯

{

led0on;

HAL_Delay(time); //延时时间为time的值

led0off;

HAL_Delay(time);

led1on;

HAL_Delay(time);

led1off;

HAL_Delay(time);


led2on;

HAL_Delay(time);

led2off;

HAL_Delay(time);

led3on;

HAL_Delay(time);

led3off;

HAL_Delay(time);


led4on;

HAL_Delay(time);

led4off;

HAL_Delay(time);

led5on;

HAL_Delay(time);

led5off;

HAL_Delay(time);


led6on;

HAL_Delay(time);

led6off;

HAL_Delay(time);

led7on;

HAL_Delay(time);

led7off;

HAL_Delay(time);



}




/* USER CODE END Includes */


/* Private typedef -----------------------------------------------------------*/

/* USER CODE BEGIN PTD */


/* USER CODE END PTD */


/* Private define ------------------------------------------------------------*/

/* USER CODE BEGIN PD */

/* USER CODE END PD */


/* Private macro -------------------------------------------------------------*/

/* USER CODE BEGIN PM */


/* USER CODE END PM */


/* Private variables ---------------------------------------------------------*/


/* USER CODE BEGIN PV */


/* USER CODE END PV */


/* Private function prototypes -----------------------------------------------*/

void SystemClock_Config(void);

/* USER CODE BEGIN PFP */


/* USER CODE END PFP */


/* Private user code ---------------------------------------------------------*/

/* USER CODE BEGIN 0 */


/* USER CODE END 0 */


/**

  * @brief  The application entry point.

  * @retval int

  */

int main(void)

{

  /* USER CODE BEGIN 1 */


  /* USER CODE END 1 */


  /* MCU Configuration--------------------------------------------------------*/


  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */

  HAL_Init();


  /* USER CODE BEGIN Init */


  /* USER CODE END Init */


  /* Configure the system clock */

  SystemClock_Config();


  /* USER CODE BEGIN SysInit */


  /* USER CODE END SysInit */


  /* Initialize all configured peripherals */

  MX_GPIO_Init();

  

  /* USER CODE BEGIN 2 */

gd(); //先关闭全部灯

  /* USER CODE END 2 */


  /* Infinite loop */

  /* USER CODE BEGIN WHILE */

  while (1)

  {

  lsd(); //循环流水灯

  

  

    /* USER CODE END WHILE */


    /* USER CODE BEGIN 3 */

  }

  /* USER CODE END 3 */

}


/**

  * @brief System Clock Configuration

  * @retval None

  */

void SystemClock_Config(void)

{

  RCC_OscInitTypeDef RCC_OscInitStruct = {0};

  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};


  /** Initializes the RCC Oscillators according to the specified parameters

  * in the RCC_OscInitTypeDef structure.

  */

  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;

  RCC_OscInitStruct.HSEState = RCC_HSE_ON;

  RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;

  RCC_OscInitStruct.HSIState = RCC_HSI_ON;

  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;

  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;

  RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;

  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)

  {

    Error_Handler();

  }

  /** Initializes the CPU, AHB and APB buses clocks

  */

  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK

                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;

  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;

  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;

  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;

  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;


  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)

  {

    Error_Handler();

  }

}


/* USER CODE BEGIN 4 */


/* USER CODE END 4 */


/**

  * @brief  This function is executed in case of error occurrence.

  * @retval None

  */

void Error_Handler(void)

{

  /* USER CODE BEGIN Error_Handler_Debug */

  /* User can add his own implementation to report the HAL error return state */

  __disable_irq();

  while (1)

  {

  }

  /* USER CODE END Error_Handler_Debug */

}


#ifdef  USE_FULL_ASSERT

/**

  * @brief  Reports the name of the source file and the source line number

  *         where the assert_param error has occurred.

  * @param  file: pointer to the source file name

  * @param  line: assert_param error line source number

  * @retval None

  */

void assert_failed(uint8_t *file, uint32_t line)

{

  /* USER CODE BEGIN 6 */

  /* User can add his own implementation to report the file name and line number,

     ex: printf("Wrong parameters value: file %s on line %drn", file, line) */

  /* USER CODE END 6 */

}

#endif /* USE_FULL_ASSERT */


/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

关键字:STM32  实验室 引用地址:基于STM32的实验室点灯大师

上一篇:【STM32】串口接收任意字符串
下一篇:STM32中0x1u 0u的含义

推荐阅读最新更新时间:2024-11-08 19:26

斯柯达利用大众集团首个虚拟夜间驾驶实验室 设计优化照明系统
看到以及被看到是在黑夜里驾驶的黄金法则。随着白天变短,黑夜变长,黑夜里视野变差会对驾驶员造成危害,有40%的汽车事故都发生在黑暗时段。据外媒报道,始终处于安全设计前沿的斯柯达(ŠKODA)公司,正在使用夜间驾驶模拟实验室研发和测试前大灯。 斯柯达的虚拟夜间驾驶技术利用虚拟现实和实体模型为其车辆研发最新的前大灯设计。使用设计师提供的草图和3D数据,研发人员使用该技术设计和调整灯光以适应每款新型斯柯达车型。在静态和动态驾驶模拟环境中测试光束,评估专家坐在车内模拟现实生活体验。为创建真实的虚拟图像,模拟器使用3个单片数字光处理器(DLP)投影仪,在镜头前安装光学掩模,以完善夜间驾驶场景中的黑色场景配置。然后建立数学模型监控各种功能,
[汽车电子]
STM32中断与嵌套NVIC快速入门
简介:STM32 中断与嵌套NVIC 快速入门 //==================================================== // STM32 中断与嵌套NVIC 快速入门 // netjob 2008-8-1 //==================================================== STM32中断与嵌套NVIC快速入门 我也是靠看这本书才弄懂的: Cortex-M3 权威指南 Joseph Yiu 著 宋岩 译 其实很简单。 //CM3 有 最多240个中断(通常外部中断写作IRQs),就是 软件上说的 IRQ CHA
[单片机]
STM32时钟树分析
1 STM32总线 首先,说点不靠谱的,APB和AHB总线,我个人感觉这个类似于个人PC系统里的北桥和南桥总线。 南桥总线上挂接的都是鼠标、键盘这些慢速的设备,北桥上挂接显卡等高速设备。南桥频率低,北桥频率高。另外,南桥最后也要接到北桥上。 这些感觉都类似于APB和AHB。 AHB,是Advanced High performance Bus的缩写,译作高级高性能总线,这是一种“系统总线”。 AHB主要用于高性能模块(如CPU、DMA和DSP等)之间的连接。AHB 系统由主模块、从模块和基础结构(Infrastructure)3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。 APB,是Advance
[单片机]
<font color='red'>STM32</font>时钟树分析
安森美开设欧洲电动汽车系统应用实验室
实验室可为内部测试提供便利条件,有助于为汽车和电源转换系统开发下一代创新技术 2023年11月 2 1日— 安森美 (onsemi)宣布在斯洛伐克皮耶什佳尼(Piestany, Slovakia)开设应用测试实验室, 专注于推进电池/插电式混合动力/电动汽车 (xEV) 和能源基础设施 (EI) 电源转换系统方案的迭代和创新 。这先进的系统应用实验室提供专用设备,并与汽车主机厂(OEM)、一级供应商和 EI 供应商合作,开发和测试下一代硅 (Si) 和碳化硅 (SiC) 半导体解决方案。 现代半导体器件对于 xEV 动力总成和充电及可再生能源应用中的高效电源转换至关重要。该实验室将发挥核心作用,确保未来电源产品的开发
[汽车电子]
stm32 JTAG和SWD的使用区别
对于JTAG和SWD的使用区别,觉得下面这篇文章讲的比较清晰了,所以转帖到这里,希望对新手有所帮助。 SWD与JTAG区别及使用情况 一、SWD 和传统的调试方式区别 1. SWD 模式比 JTAG 在高速模式下面更加可靠。 在大数据量的情况下面 JTAG 下载程序会失败, 但是 SWD 发生的几率会小很多。基本使用 JTAG 仿真模式的情况下是可以直接使用 SWD 模式的, 只要你的仿真器支持。 所以推荐大家使用这个模式。 2. 在大家 GPIO 刚好缺一个的时候, 可以使用 SWD 仿真, 这种模式支持更少的引脚。 3. 在大家板子的体积有限的时候推荐使用 SWD 模式, 它需要的引脚少, 当然需
[单片机]
<font color='red'>stm32</font> JTAG和SWD的使用区别
STM32 中断配置 自我学习总结
简单记录一下STM32 的中断配置说明! ----第一部分是---中断向量表----- --------这个只是简单参照----不同版本也有些不一样--但是大同小异----自己可以到启动文件---startup_stm32f10x_hd.s中去查找。 ----第二部分---中断优先级配置 static void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //分组 NVIC_InitStructure.NVIC_IRQChannel =
[单片机]
<font color='red'>STM32</font> 中断配置 自我学习总结
再造STM32---第七部分:初识 STM32 固件库
本章参考资料:《STM32F4xx 参考手册》、《STM32F4xx 规格书》、《Cortex-M3 权威指南》 , STM32 标准库帮助文档:《stm32f4xx_dsp_stdperiph_lib_um.chm》。在上一章中,我们构建了几个控制 GPIO 外设的函数,算是实现了函数库的雏形,但GPIO 还有很多功能函数我们没有实现,而且 STM32 芯片不仅仅只有 GPIO 这一个外设。 如果我们想要亲自完成这个函数库,工作量是非常巨大的。 ST 公司提供的标准软件库,包含了 STM32 芯片所有寄存器的控制操作,我们直接学习如何使用 ST 标准库,会极大地方便控制 STM32 芯片。 7.1 CMSIS 标准
[单片机]
再造STM32---第七部分:初识 <font color='red'>STM32</font> 固件库
stm32之低功耗总结
四、写一写到底选择什么模式: 再看完几篇大神的文章之后,我觉得应该重新规划一下文章的描述方式,我们首先就要明白自己的目的是什么,然后看看自己的目的的最好结果和最差结果,然后分析自己目前的处境。最后才是选择方法途径,也许再明白自己和目标的局限性之后,才能更好的实现目标吧。 找到目标--------------》认清现状--------------》找方法 4.1、低功耗的目的和应用: 我们做低功耗目的可以说是相当简单,那就是省电,省下电量。 但是,省电只是一个特性,我们不能用这个特性来影响了主要的功能,所以stm提供了多种的省电方式。 我们先按照常见的产品来分低功耗的类型: 最不需要省电的:例如很多常备设备,比如那些要保
[单片机]
<font color='red'>stm32</font>之低功耗总结
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved