史无前例蓝毛勇者激推 2024-06-26 15:07 采纳率: 66.7%
浏览 18
已结题

用freertos后NVIC里系统时钟部分报错

img


如何解决这个问题?我系统时钟设定为了定时器10,NVIC里这两个东西报错,我哪里搞错了什么

  • 写回答

25条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-26 15:07
    关注
    获得0.30元问题酬金

    引自免费微信小程序:皆我百晓生

    要解决这个问题,首先确认您已经正确配置了时钟源,并且在Clock Configuration标签页中设置了NVIC Clock SourceTimer10。接下来,请检查Pinout & Configuration标签页中的NVIC Clock设置是否与您的硬件连接一致。

    如果您仍然遇到问题,可能是因为时钟中断(NVIC)相关的中断处理程序没有被正确编译。尝试将以下代码添加到您的项目文件中:

    #include <freertos/FreeRTOS.h>
    #include <freertos/task.h>
    
    // 定义中断服务函数
    void NvicInterruptHandler(void *param) {
        // 处理中断事件
    }
    
    static void handleInterrupt(NVIC_InitTypeDef *NvicInitStruct) {
        // 获取当前任务
        xTaskCreate(&NvicInterruptHandler, "NvicInterruptHandler", 1000,
                     NULL, TskIDLE_PRIORITY + 1, NULL);
    }
    
    int main(void) {
        // 初始化NVIC
        NVIC_InitTypeDef NvicInitStruct = { .Priority = 2, .IntrSource = NVMC_IRQn, .IntrFlags = NVMC_FLAG, .Prescaler = 0, .CoarsePriority = 0, .Scalability = 0, .PriorityGroupIndex = 0 };
    
        // 设置NVIC初始化结构体
        NvicInitStruct.NvicIndex = NVMC_IRQn;
        NvicInitStruct.NvicPriority = NvicInitStruct.Priority;
        NvicInitStruct.NvicFlags = NvicInitStruct.IntrFlags;
    
        // 设置NVIC中断标志
        NVIC_SetPriority(Nvmc_IRQn, NvicInitStruct.NvicPriority);
    
        // 初始化NVIC中断处理程序
        NVIC_EnableIRQ(Nvmc_IRQn);
        NVIC_SetVector(Nvmc_IRQn, (uint32_t)handleInterrupt); // 将中断处理程序指针赋值给NVIC的中断向量地址
        NVIC_EnableIRQ(Nvmc_IRQn);
    
        // 开始任务
        vTaskStartScheduler();
    
        return 0;
    }
    

    然后,在System Tick Timer区域,确保您的定时器10(TIM10)已启用,并且其内部中断(TIM10_IRQn)已被注册为一个外部中断。

    如果您遵循上述步骤并仍遇到问题,请提供更多的关于您的硬件配置和软件环境的信息,以便进一步诊断和解决问题。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 7月4日
  • 创建了问题 6月26日

悬赏问题

  • ¥15 crossover21 ARM64版本安装软件问题
  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?
  • ¥15 QQ邮箱过期怎么恢复?
  • ¥15 登录他人的vue项目显示服务器错误
  • ¥15 (标签-android|关键词-app)