RCC_APB1PeriphClpockCmd(RCC_APB1Periph_ALL,DISABLE)之后__set_PRIMASK(0)死机
时间: 2023-09-09 09:06:56 浏览: 37
根据你的描述,我猜测你是在使用STM32开发板进行开发,同时在代码中关闭了所有APB1外设的时钟,并且在此之后使用了__set_PRIMASK(0)指令。这个指令会将中断屏蔽位清零,允许中断处理器执行中断服务程序。
如果你的代码在执行RCC_APB1PeriphClpockCmd(RCC_APB1Periph_ALL,DISABLE)之后就死机了,可能是因为你关闭了某个必要的外设的时钟,导致后面的代码无法正常执行。你可以尝试逐一关闭每个APB1外设,找到导致死机的那个外设,然后避免关闭它的时钟。
另外,如果你使用了__set_PRIMASK(0)指令,那么你需要确保你的中断服务程序已经正确地实现了,并且能够正确地处理中断请求。如果中断服务程序出现了错误,可能会导致死机。
相关问题
RCC_APB1PeriphclockCmd(RCC_APB1Periph_ALL,DISABLE)使用之后死机
RCC_APB1PeriphclockCmd()函数用于配置APB1总线上的外设时钟使能,将RCC_APB1Periph_ALL作为第一个参数传入,意味着禁止APB1总线上的所有外设时钟,这可能会导致系统中的某些外设无法正常工作,从而导致死机。
建议只禁用需要禁用的外设时钟,而不是将所有外设时钟都禁用。如果你已经将所有外设时钟都禁用了,可以尝试使用RCC_APB1PeriphclockCmd()函数重新启用需要的外设时钟,以解决死机问题。另外,也可以通过调试工具查看代码执行过程中的错误信息,以便更好地定位问题所在。
RCC_APB1PeriphclockCmd(RCC_APB1Periph_ALL,DISABLE)使用之后为什么死机
RCC_APB1PeriphClockCmd() 是 STM32 系列芯片的一个函数,用于控制外设时钟的开启与关闭。该函数的第一个参数是需要控制的外设时钟,第二个参数是 ENABLE 或 DISABLE,分别表示开启和关闭。
如果你使用了 RCC_APB1PeriphClockCmd(RCC_APB1Periph_ALL,DISABLE) 关闭了所有外设时钟,那么可能会导致芯片无法正常工作,出现死机的情况。因为外设时钟是芯片正常工作所必需的,关闭所有外设时钟会导致芯片无法正常操作。
如果需要关闭某个特定的外设时钟,可以将第一个参数设置为该外设对应的枚举值。同时,需要注意关闭外设时钟的时机和顺序,以免影响芯片的正常工作。