完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
//请教!为什么这个程序无法运行?
#include "STM32f10x.h" void GPIO_Config(void)//GPIO配置{ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//使能gpioc的时 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; //选择管脚PC.13作LED灯 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //管脚速度为50M GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置输出模式为推挽输出 GPIO_Init(GPIOC, &GPIO_InitStructure); //将上述设置写入到GPIOC里去} void NVIC_Config(void) //中断控制器的配置{ NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); //优先组设置 NVIC_InitStructure.NVIC_IRQChannel =tiM2_IRQn ; //TIM2中断选通 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //抢占优先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //子优先级 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能中断控制 NVIC_Init(&NVIC_InitStructure);}void Timer_Config(void) //定时器的配置{ TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , ENABLE); //Timer2 时钟使能 TIM_DeInit(TIM2); //复位TIM2定时器 TIM_TimeBaseStructure.TIM_Period=1000; //定时器周期 TIM_TimeBaseStructure.TIM_Prescaler=36000-1; //预分频数 TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; //TIM2时钟分频,为1表示不分频 TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;//定时器计数为向上计数模式 TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); TIM_ClearFlag(TIM2, TIM_FLAG_Update); //清除定时器2的溢出标志位 TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE); //使能定时器2溢出中断 TIM_Cmd(TIM2, ENABLE); //定时器2使能} int main(void){ SystemInit();//初始化时钟,配置为72MHz,我试过将这句注释掉,好像不影响结果。查了一下,在配置 //main函数之前的启动代码有这样一句 LDR R0, =SystemInit,我疑惑的是难道启动的时候就配成72Mhz? GPIO_Config(); NVIC_Config(); Timer_Config(); while(1) { ; }} void TIM2_IRQHandler(void){ static int flag_bit=0;//定义一个标志位 if ( TIM_GetITStatus(TIM2 , TIM_IT_Update) != RESET ) //判断中断溢出标志为是否为1 { TIM_ClearITPendingBit(TIM2 , TIM_FLAG_Update); //清除溢出中断标志位 flag_bit = !flag_bit; if(flag_bit == 1) { GPIO_SetBits(GPIOC, GPIO_Pin_13); //熄灭LED } if(flag_bit == 0) { GPIO_ResetBits(GPIOC, GPIO_Pin_13); //点亮LED } } } |
|
相关推荐
1个回答
|
|
我运行过了,程序没有问题,MCU默认时钟源是HSI
|
|
|
|
只有小组成员才能发言,加入小组>>
3292 浏览 9 评论
2966 浏览 16 评论
3471 浏览 1 评论
9016 浏览 16 评论
4058 浏览 18 评论
1137浏览 3评论
588浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
579浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2313浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1876浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-2 23:14 , Processed in 0.903008 second(s), Total 102, Slave 81 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号