TIM 配置说明 及hardfault 、烧录后程序不跑,但可仿真运行问题

一、今天搞了一天灯,一直实现不了 不同状态下的红绿蓝,以及黄色呼吸灯,总结如下:

1.蓝色灯的引脚在配置的时候与其它地方配置引脚冲突了,这种情况会导致灯亮的很微弱,在简单测试的情况下,没有打开全部线程没有发现引脚冲突,所以没有往这个方面考虑。

2.不熟悉定时器的配置,引脚前面配置正确了,但是pwm一直不起作用,查了一下底层配置的意思

TIM_OC2Init(TIM2, &TIM_OCInitStructure):

这一行代码用于初始化TIM2的通道2,也就是定时器的比较输出通道2。TIM_OCInitStructure 结构体中包含了比较输出通道的配置信息,包括通道模式、输出极性、占空比等。

经查数据手册,我应该用通道1 ,但是这里是通道2,改成正确的通道后,可以正确实现呼吸灯功能。

    TIM_OC1Init(TIM2, &TIM_OCInitStructure);
	TIM_OC1PreloadConfig(TIM2, TIM_OCPreload_Enable);	/* 使能预装载寄存器1 */
    TIM_ARRPreloadConfig(TIM2, ENABLE);
	TIM_CtrlPWMOutputs(TIM2, ENABLE);
	TIM_Cmd(TIM2, ENABLE);

3.一直要确认哪个引脚对应什么灯

二、关于程序烧录后主板不跑的问题 以及偶尔发生hardfault,仿真情况下不会hardfault

1.考虑栈是否溢出

2.注意更改keil的配置

.

这个实际没有1M,改成0x00100000 才是1M ,重新烧录引导程序后,程序正常运行,有遇到其它情况的兄弟们,欢迎留言!!

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值