请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32H743zit6开启定时中断后,反复执行中断回调函数,无法执行其他程序

[复制链接]
懒得起名1 提问时间:2023-6-6 17:36 / 已解决

CUBETIM.png

CUBEMX设置如上。

回调函数如下:

{
if(htim->Instance == TIM2)
{LL_GPIO_TogglePin(CLK_GPIO_Port,CLK_Pin);}

调用代码如下:

USB_printf("1");

HAL_TIM_Base_Start_IT(&htim2);

USB_printf("2");

效果图如下:1.png

波形.JPG

串口助手收到1后不再接收并且卡死无反应,引脚正常翻转,回调函数正常执行。

收藏 评论6 发布时间:2023-6-6 17:36

举报

6个回答
butterflyspring 最优答案 回答时间:2023-6-7 09:53:08
如果是4OMhz 的翻转信号,估算一下间隔超短,中断执行不了几行代码了。所以多半中断阻塞住了。
楼主还是考虑用其他硬件方式实现这样的时钟信号吧。
xmshao 回答时间:2023-6-6 17:56:24
你看看开启了哪些中断?


如果只是使用了TIM2,看你在它的回调函数里又调用


了HAL_TIM_Base_Start_IT(&htim2);


难道你该回调函数之外做了TIM2的关闭操作?不过,这个操作应该


不是问题关键,只是写在这里又开启一次TIM2及中断有点费解。


另外,USB_printf()函数是怎么实现的?涉及到中断了吗?


建议干脆将这两个Printf调用换成2个全局变量来观察变化


并试着锁定原因。
wenyangzeng 回答时间:2023-6-6 19:57:39

Counter Period=4-1

则定时器的计数值为3,这么短的定时时间,当然一直进入定时器中断。

懒得起名1 回答时间:2023-6-6 20:39:55

xmshao 发表于 2023-6-6 17:56
你看看开启了哪些中断?</p>
<p>

#include <stdarg.h>
void USB_printf(const char *format,...)
{
    va_list args;
    uint32_t length;
    va_start(args,format);
    length = vsnprintf((char *)UserTxBufferFS,APP_TX_DATA_SIZE,(char *)format,args);
    va_end(args);
    while(CDC_Transmit_FS(UserTxBufferFS,length) != USBD_OK);
//  CDC_Transmit_FS(UserTxBufferFS,length);
}

usb是虚拟串口prinft重定义函数。由TIM2定时器产生的中断可以成功的翻转引脚电平,TIM2的中断是没有问题的。是TIM2的中断制止了其他中断和程序正常运行了。

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
    if(htim->Instance == TIM2)
    {
        LL_GPIO_TogglePin(CLK_GPIO_Port,CLK_Pin);
    }
}

回调函数就是在翻转引脚电平

懒得起名1 回答时间:2023-6-6 20:41:53

wenyangzeng 发表于 2023-6-6 19:57
Counter Period=4-1</p>
<p>则定时器的计数值为3,这么短的定时时间,当然一直进入定时器中断。

[md]我需要一个40MHz的时钟信号,时钟树里的总线是240MHz。只能这么短了吧

懒得起名1 回答时间:2023-6-7 12:01:15

butterflyspring 发表于 2023-6-7 09:53
如果是4OMhz 的翻转信号,估算一下间隔超短,中断执行不了几行代码了。所以多半中断阻塞住了。
楼主还是考 ...

说错了4MHz,但好像1MHz都达不到卡在800KHz了。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版