通讯复习资料.docx解析版

更新时间: 试题数量: 购买人数: 提供作者:

有效期: 个月

章节介绍: 共有个章节

收藏
搜索
题库预览
设计一个基于STM32F103的系统,实现使用一个定时器(TIM2)产生1秒的定时中断的功能。在中断服务函数中,实现一个LED(接PC13)每隔1秒翻转一次(即周期2秒闪烁)。主函数中完成系统初始化后进入无限循环。 要求:给出完整的程序代码,包括:GPIO初始化、定时器初始化(含中断配置)、定时器中断服务函数、主函数。 参考代码: #include "stm32f10x.h" //定时器中断周期计数 volatile uint32_t timer_count = 0; void GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; //使能GPIOC时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //配置PC13为推挽输出 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOC, &GPIO_InitStructure); //初始状态:LED熄灭 GPIO_SetBits(GPIOC, GPIO_Pin_13); } void TIM2_Config(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; //使能TIM2时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); //配置定时器:72MHz/7200 = 10kHz,计数10000次 = 1秒 //定时时间 = (PSC+1) × (ARR+1) / 定时器时钟 //1s = (7200-1) × (10000-1) / 72MHz ≈ 1秒 TIM_TimeBaseStructure.TIM_Period = 10000 - 1; //ARR TIM_TimeBaseStructure.TIM_Prescaler = 7200 - 1; //PSC TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); //使能TIM2更新中断 TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); //配置NVIC NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); //使能TIM2 TIM_Cmd(TIM2, ENABLE); } //TIM2中断服务函数 void TIM2_IRQHandler(void) { if(TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) { //翻转LED状态 if(GPIO_ReadOutputDataBit(GPIOC, GPIO_Pin_13) == 0) GPIO_SetBits(GPIOC, GPIO_Pin_13); else GPIO_ResetBits(GPIOC, GPIO_Pin_13); //清除中断标志 TIM_ClearITPendingBit(TIM2, TIM_IT_Update); } } int main(void) { GPIO_Config(); TIM2_Config(); while(1); } 评分标准及得分点: 项目 得分点 GPIO配置 时钟使能、LED输出模式配置正确 定时器配置 时钟使能、PSC/ARR计算正确、定时器初始化正确 NVIC中断配置 中断通道正确、优先级设置合理、中断使能正确 中断服务函数 中断标志判断、LED翻转逻辑正确、清除中断标志