开发板是stm32f103 写一个定时器控制流水灯的代码

时间: 2024-02-15 15:05:17 浏览: 29
好的,下面是一个简单的基于 STM32F103 开发板的定时器控制流水灯的代码,使用 TIM2 定时器和 GPIO 接口控制 LED 灯的闪烁: ```c #include "stm32f10x.h" void GPIO_Configuration(void); void TIM_Configuration(void); int main(void) { GPIO_Configuration(); TIM_Configuration(); while (1) { } } void GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOC, &GPIO_InitStructure); } void TIM_Configuration(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); TIM_TimeBaseStructure.TIM_Period = 999; //设置计数器自动重装值 TIM_TimeBaseStructure.TIM_Prescaler = 7199; //设置时钟预分频系数 TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //计数器向上计数模式 TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); TIM_Cmd(TIM2, ENABLE); //开启定时器 TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); //开启定时器更新中断 NVIC_EnableIRQ(TIM2_IRQn); //开启 TIM2 中断 } void TIM2_IRQHandler(void) { static uint8_t led_state = 0; if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) { TIM_ClearITPendingBit(TIM2, TIM_IT_Update); //清除中断标志位 if (led_state == 0) { GPIO_SetBits(GPIOC, GPIO_Pin_0); GPIO_ResetBits(GPIOC, GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3); led_state = 1; } else if (led_state == 1) { GPIO_SetBits(GPIOC, GPIO_Pin_1); GPIO_ResetBits(GPIOC, GPIO_Pin_0 | GPIO_Pin_2 | GPIO_Pin_3); led_state = 2; } else if (led_state == 2) { GPIO_SetBits(GPIOC, GPIO_Pin_2); GPIO_ResetBits(GPIOC, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_3); led_state = 3; } else if (led_state == 3) { GPIO_SetBits(GPIOC, GPIO_Pin_3); GPIO_ResetBits(GPIOC, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2); led_state = 0; } } } ``` 以上代码中,GPIO_Configuration() 函数用于配置 GPIO 接口,将 LED 灯的控制引脚设置为输出模式;TIM_Configuration() 函数用于配置 TIM2 定时器,将定时器的时钟预分频系数设置为 7199,计数器自动重装值设置为 999,计数器向上计数模式,以 1MHz 的频率产生中断;TIM2_IRQHandler() 函数为 TIM2 的中断服务函数,在中断服务函数中实现流水灯的效果。

相关推荐

最新推荐

recommend-type

启明欣欣stm32f103rct6开发板原理图

启明欣欣stm32f103rct6开发板原理图 哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈...
recommend-type

嵌入式实验报告 stm32f103 跑马灯实验 GPIO口操作

熟悉编译环境,尝试独立进行工程的创建、编译、下载。通过阅读 STM32 芯片手册了解关于 GPIO 的相关内容,并且通过编程实现 LED 流水灯控制。
recommend-type

STM32F103C8T6开发板+GY521制作Betaflight飞控板详细图文教程

STM32F103C8T6黑色开发板1个(11.5元) GY-521加速度计模块1个(3.8元) ams1117-3.3电压转换芯片1个(0.38元) 5V有源蜂鸣器1个(0.43元) 5cm*7cm洞洞板1个(0.45元)  肖特基二极管2个 ss8050三极管2个 1k电阻2个,...
recommend-type

STM32F103VCT6开发板使用说明.pdf

STM32F103VCT6开发板使用说明,适合stm32单片机新手入门学习,内容丰富,简单易操作,便于学习参考
recommend-type

华清远见STM32MP157开发板FS-MP1A硬件手册一览

MP1A开发板是基于ST(意法半导体)公司的STM32MP1系列微处理器而设计的开发板,该系列处理器提供了集成 Arm® Cortex®-A7 和 Cortex®-M4 两种内核的异构架构,在实现高性能且灵活的多核架构以及图像处理能力基础上,...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB结构体与对象编程:构建面向对象的应用程序,提升代码可维护性和可扩展性

![MATLAB结构体与对象编程:构建面向对象的应用程序,提升代码可维护性和可扩展性](https://picx.zhimg.com/80/v2-8132d9acfebe1c248865e24dc5445720_1440w.webp?source=1def8aca) # 1. MATLAB结构体基础** MATLAB结构体是一种数据结构,用于存储和组织相关数据。它由一系列域组成,每个域都有一个名称和一个值。结构体提供了对数据的灵活访问和管理,使其成为组织和处理复杂数据集的理想选择。 MATLAB中创建结构体非常简单,使用struct函数即可。例如: ```matlab myStruct
recommend-type

详细描述一下STM32F103C8T6怎么与DHT11连接

STM32F103C8T6可以通过单总线协议与DHT11连接。连接步骤如下: 1. 将DHT11的VCC引脚连接到STM32F103C8T6的5V电源引脚; 2. 将DHT11的GND引脚连接到STM32F103C8T6的GND引脚; 3. 将DHT11的DATA引脚连接到STM32F103C8T6的GPIO引脚,可以选择任一GPIO引脚,需要在程序中配置; 4. 在程序中初始化GPIO引脚,将其设为输出模式,并输出高电平,持续至少18ms,以激活DHT11; 5. 将GPIO引脚设为输入模式,等待DHT11响应,DHT11会先输出一个80us的低电平,然后输出一个80us的高电平,
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。