本帖最后由 疾风 于 2018-7-21 01:37 编辑 最近用CUBE 生成 F2系列的 FreeRTOS 工程, 使用定时器14 在编写中断函数时,遇到了诡异的情况, 输出方波, 上电第一轮正常, 关闭定时器后,第二轮就出现奇怪现像. 配置的是 关闭预加载寄存器模式, 自动计数到ARR的值 然后执行中断 void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { ... if(htim->Instance == TIM14) { 中断函数;可外部,可内部 } ... } 程序中激活中断: HAL_TIM_Base_Stop_IT(&htim14); TIM14->CNT=0; TIM14->ARR= 666;// //启动定时器 HAL_TIM_Base_Start_IT(&htim14);// 在中断函数中将制造一个方波,每进一次中断,输出反转一次,此处省去 郁闷的是 上电后,第一轮 输出n个方波脉冲OK,没问题, 结果之后的输出方波总会在 第2个高电平,也就是第三次进入中断后 的延时会被奇怪地缩减到不到100us, 更加奇怪的是 此现象 的程序 在之前还一切正常,多次发送都没问题, 结果前天晚上调试加了几句宏定义测试, 出现了这现象, 然后旧取消掉后加的语句, 还是 出现异常, 调试了一天, 把定时器的寄存器又研究了一遍,没发现啥毛病, 就在想 可能有2方面原因引起这 异常, 1个 是怀疑STM32F2 系列芯片 内部设计有缺陷或者Bug, 这个Bug出现的地方,可能是总线竞争或者是定时器14的触发源 , 另一个就是怀疑 官方提供的固件库有Bug, 另外 调试的时候发现 在第3次进中断后,定时器的计数器 在 我停止定时器以后 还是无法清零,而且第三次进入中断后的 计数器值 比较大,这个很奇怪 ,不知道什么引起, 调试器件我尝试将一轮方波输出中 进入中断第二次(输出0),第三次的(输出1) ARR值改到900, 然后 进入第三次中断后 ,计数器的值也跟着变大了 很诡异, 另外 APB1上的很多中断接口被 HAL库统一接管, 感觉容易出问题, |
STM32F207VET6的flash是512KB的,为什么对0x080A0000后512KB的内存进行操作程序没有问题?
STM32F207VET6电源部分的CAP1、CAP2没有按要求接2.2uF为什么上电失败?
sn32f24fg-lqfp48这个芯片做无线通讯,有大佬推荐芯片,我想学习一下
我是新手,之前一直学习51,32不太了解,请问下sn32f24fg-lqfp48这种芯片开发学习,请问下需要注意什么?有不推荐书籍资料
LY的SPI PSRAM搭配STM32F0/STM32F1/STM32F2/STM32F3/STM32F4/系列
做软件开发,有哪些硬件电路相关的技术资料参考下?
stm32f207无法同时接上两个不同串口的数据
请教各位:在keil5安装了pack包的情况下,用cubemx生成工程,keil5打开后提示找不到对应的stm32型号
STM32F2 YMODEM IAP 问题
掉电保持中断问题