我使用的是STM32F7系列微控制器,当核心处于暂停状态时,有一些GPIO改变值(切换,脉冲,高-z ...)调试器连接到JTAG接口。有谁知道这样的功能?当目标暂停时,STM32切换PIN
回答
有DBGMCU
寄存器,它可以在内核停止时选择性地停止某些外设(主要是定时器)。
这个想法是以某种方式让计时器在运行时输出一个低电平信号,而当它不运行时则为高电平。单个定时器不能做到这一点,但在主从配置中有两个定时器是可能的。
配置TIM3
输出一个占空比非常高的PWM信号,从低电平开始两个周期,然后在65536周期的其余时间内变为高电平。将它设为TIM2
,运行时间为2个周期,并在计数器溢出时重置TIM3
。因此,只要TIM2
正在运行,TIM3
就被强制为低电平,但当TIM2
停止时,它将输出99.997%的高PWM信号。然后TIM2
被配置为在内核被调试器暂停时停止,但TIM3
继续运行。
RCC->AHBENR |= RCC_AHBENR_GPIOBEN; // enable peripheral clocks, that might be different on your board
RCC->APB1ENR |= RCC_APB1ENR_TIM2EN | RCC_APB1ENR_TIM3EN;
// consult your datasheet for the right AF value
GPIOB->AFR[0] = (GPIOB->AFR[0] & ~GPIO_AFRL_AFRL0) | 2; // set PB0 to Alternate Function 2, TIM3
GPIOB->MODER = (GPIOB->MODER & ~GPIO_MODER_MODER0) | GPIO_MODER_MODER0_1; // set PB0 to Alternate Function
DBGMCU->APB1FZ |= DBGMCU_APB1_FZ_DBG_TIM2_STOP; // stop TIM2 when core is stopped
DBGMCU->APB1FZ &= ~DBGMCU_APB1_FZ_DBG_TIM3_STOP; // but don't stop TIM3
TIM2->ARR = 1; // master timer period
TIM2->CR2 = TIM_CR2_MMS_1; // master mode selection MMS=010 Update event
TIM2->CR1 = TIM_CR1_CEN; // enable timer 2
TIM3->ARR = 65535; // PWM period
TIM3->CCR3 = 2; // channel 3 PWM duty cycle
TIM3->CCMR2 = TIM_CCMR2_OC3M; // set channel 3 to PWM mode 2
TIM3->CCER = TIM_CCER_CC3E // enable channel 3 compare output
/* | TIM_CCER_CC3P */; // it's possible to invert output polarity
TIM3->SMCR = TIM_SMCR_TS_0 // trigger selection TS=001 ITR1 = TIM2 is master
| TIM_SMCR_SMS_2; // slave mode SMS=100 reset mode
TIM3->CR1 = TIM_CR1_CEN; // enable timer 3
我没有一个F7,它运行在我的STM32L151
板,恰好有一个PB0 LED,这是TIM3
通道3. LED是很好的照亮了,当我在打暂停按钮调试器,低脉冲肉眼根本不明显。应用一个外部的low pass RC filter,使它消失时,它会影响它连接到的任何组件。使用高级定时器TIM1
或TIM8
的Retriggerable单脉冲模式输出干净的信号也许是可能的,但我对这些信号没有任何经验。
这个任务的两个定时器(包括宝贵的32位tim2),这是矫枉过正。 –
它当然适用于任何可能的主从定时器对。 – berendi
但我不明白为什么?在多处理器环境中停止另一个微处理器jtag有特殊的机制 –
- 1. 暂停按钮在切换播放/暂停时不工作
- 2. 在线程切换时暂停gdb
- 3. 当切换到另一个页面时,暂停音乐在php
- 4. 切换按钮暂停/取消暂停音频监听器
- 5. 创建播放/暂停切换开关
- 6. 切换播放/暂停不起作用
- 7. 切换播放/暂停按钮
- 8. JavaScript的播放/暂停音频切换
- 9. 播放/暂停之间切换UIButtons
- 10. 暂时禁用jQuery切换
- 11. STM32在暂停调试器时冻结周边设备
- 12. 当活动暂停时Runnable停止
- 13. 当鼠标悬停在链接选项上时切换图片
- 14. 定时器不会以开始/暂停切换按钮开始
- 15. 如何防止切换选项卡时的HTML游戏暂停
- 16. 当场景暂停时,GameplayKit不会暂停
- 17. 暂停按钮应停止切换图像
- 18. 当点击它时切换FloatingActionButton图标
- 19. 当屏幕锁定时,Mp3已暂停
- 20. Twilio说当暂停会议时
- 21. 当拍照时预览没有暂停
- 22. JQuery鼠标暂停
- 23. 从url转换为uiimage时暂停
- 24. 角度状态转换暂停超时
- 25. 暂停jQuery悬停(鼠标悬停)
- 26. 当android活动进入暂停状态时,真的暂停了什么?
- 27. 切换悬停/点击列表项目
- 28. 的MPMoviePlayerController不可逆地切换到playbackState“暂停”
- 29. 歌曲自动后从暂停切换到播放按钮
- 30. 如何在javascript中切换或暂停setInterval
国际海事组织它不能做,因为停止核心不应该改变国家的uC。也许一些探针有一个引脚来标示它 - 但我不知道。 –