打印
[MM32硬件]

如何在MM32SPIN0280上进行基本的时钟检测

[复制链接]
1618|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
铁血丹心LLLL|  楼主 | 2024-7-30 10:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何在MM32SPIN0280上进行基本的时钟检测。

#include "mm32_device.h"
#include "hal_conf.h"

void Clock_Init(void)
{
    // 配置系统时钟,假设使用外部晶振
    RCC->CTRL |= RCC_CTRL_HSEEN; // 启用HSE
    while (!(RCC->CTRL & RCC_CTRL_HSERDY)); // 等待HSE稳定

    RCC->CFG = (RCC->CFG & ~RCC_CFG_SW) | RCC_CFG_SW_HSE; // 选择HSE作为系统时钟

    // 配置其他时钟源和分频器
    // ...
}

void IWDG_Init(void)
{
    // 启用IWDG,配置预分频器和重载寄存器
    IWDG->KR = 0xCCCC; // 启动IWDG
    IWDG->KR = 0x5555; // 允许配置
    IWDG->PR = 0x07;   // 设置预分频器
    IWDG->RLR = 0x0FFF; // 设置重载寄存器
    IWDG->KR = 0xAAAA; // 重载IWDG计数器
}

void Clock_Fault_Handler(void)
{
    // 时钟故障处理逻辑
    // 切换到备用时钟源或执行安全停机
    // ...
}

void TIM_Init(void)
{
    // 配置定时器进行周期性时钟监测
    // ...
}

int main(void)
{
    Clock_Init(); // 初始化系统时钟
    IWDG_Init(); // 初始化独立看门狗
    TIM_Init(); // 初始化定时器

    while (1)
    {
        // 周期性刷新IWDG
        IWDG->KR = 0xAAAA; // 重载IWDG计数器

        // 其他应用程序代码
        // ...
    }
}

void NMI_Handler(void)
{
    // 时钟故障中断处理程序
    Clock_Fault_Handler();
}

void TIMx_IRQHandler(void)
{
    if (TIM_GetITStatus(TIMx, TIM_IT_Update) != RESET)
    {
        // 检测系统时钟是否在预期范围内
        // ...

        TIM_ClearITPendingBit(TIMx, TIM_IT_Update); // 清除中断标志
    }
}



注意事项:
需要根据实际的硬件配置和应用需求调整时钟和看门狗的设置。
时钟故障检测的可靠性和响应时间是保证系统安全的关键。
在设计时钟检测机制时,需要考虑时钟源的冗余和故障恢复策略。

使用特权

评论回复
沙发
地瓜patch| | 2024-7-30 18:29 | 只看该作者
如何监控配置的时钟的,没找到

使用特权

评论回复
板凳
B1lanche| | 2024-9-18 14:02 | 只看该作者
就是检测内部的时钟频率?

使用特权

评论回复
地板
Candic12e| | 2024-9-18 15:07 | 只看该作者
你这是监控自己内部的时钟啊?意义好像也不是很大啊

使用特权

评论回复
5
Charlotte夏| | 2024-9-18 16:12 | 只看该作者
其实初始化时钟之后就可以不管了的,没必要知道其内部时钟实时情况吧

使用特权

评论回复
6
Estelle1999| | 2024-9-18 17:16 | 只看该作者
这个代码倒是很有意义,可以实时看当前频率,然后做调整呗

使用特权

评论回复
7
Emily999| | 2024-9-18 19:00 | 只看该作者
一般来说,在MM32SPIN0280上,系统时钟可以通过外部晶振或内部RC振荡器提供。可以检测其IO就可以知道其频率是多少

使用特权

评论回复
8
Allison8859| | 2024-9-18 20:22 | 只看该作者
检查RCC寄存器的值,确保时钟配置已正确应用

使用特权

评论回复
9
Betty996| | 2024-9-19 08:21 | 只看该作者
这个好像得知道MCO引脚和读取就可以吧

使用特权

评论回复
10
Carmen7| | 2024-9-19 10:06 | 只看该作者
这个好像就针对MCO就可以,但是知道频率好像意义也不是很大

使用特权

评论回复
11
alxd| | 2024-9-19 11:22 | 只看该作者
可以玩玩,这个代码可以直接运行是吧,试试楼主这个操作

使用特权

评论回复
12
Betty1299| | 2024-9-19 13:25 | 只看该作者
灵动好像每次运行都可以打印自己的运行频率吧

使用特权

评论回复
13
呐咯密密| | 2024-9-19 15:37 | 只看该作者
可以直接获取的

使用特权

评论回复
14
中国龙芯CDX| | 2024-9-25 13:39 | 只看该作者
监测时钟确实是非常方便的选择

使用特权

评论回复
15
小小蚂蚁举千斤| | 2024-9-25 16:01 | 只看该作者
时钟检测的意义是什么?不太清错

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

66

主题

488

帖子

1

粉丝