../Src/main.c(143): warning: #223-D: function "MF_NVIC_Init" declared implicitly
时间: 2024-06-12 14:08:54 浏览: 27
引用: 这个问题出现的原因是在.h文件中重复定义了相关函数,导致程序无法正确识别函数的位置。解决方法一是修改.h文件中的函数名,确保不重复使用。解决方法二是在使用到这个函数的文件中再次声明该函数,这样编译就能正常进行。
对于你提到的问题,警告信息是"../Src/main.c(143): warning: #223-D: function "MF_NVIC_Init" declared implicitly"。这个警告表示在main.c文件中隐式声明了函数"MF_NVIC_Init"。出现这个警告的原因可能是在调用这个函数之前没有正确声明或定义它。
解决这个问题的方法是在main.c文件中正确声明或包含"MF_NVIC_Init"函数的定义。你可以在main.c文件的开头添加函数声明,或者在main.c文件中包含MF_NVIC_Init函数的头文件。这样编译器就能正确识别到函数的位置,不再产生警告。
相关问题
NVIC_InitTypeDef NVIC_InitStruct; NVIC_InitStruct.NVIC_IRQChannel = TIM2_IRQn; // 定时器2中断 NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0; // 抢占优先级 NVIC_InitStruct.NVIC_IRQChannelSubPriority = 1; // 子优先级 NVIC_InitStruct.NVIC_IRQChanne
lCmd = ENABLE; // 使能中断 NVIC_Init(&NVIC_InitStruct); // 初始化NVIC
这段代码是在初始化定时器2的中断优先级和使能中断。其中,NVIC_InitStruct是一个结构体类型的变量,用来存储中断相关的配置信息。NVIC_InitStruct.NVIC_IRQChannel指定了中断通道,这里是定时器2中断。NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority和NVIC_InitStruct.NVIC_IRQChannelSubPriority分别指定了抢占优先级和子优先级,用于确定中断优先级的顺序。最后,NVIC_Init函数用来初始化NVIC,使得中断优先级和使能状态生效。
NVIC_InitTypeDef NVIC_InitStruct; NVIC_InitStruct.NVIC_IRQChannel =USART1_IRQn; //串口1 NVIC_InitStruct.NVIC_IRQChannelCmd =ENABLE; NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority =1; NVIC_InitStruct.NVIC_IRQChannelSubPriority =0; NVIC_Init(&NVIC_InitStruct); NVIC_InitStruct.NVIC_IRQChannel = EXTI0_IRQn; // 外部中断线0对应的中断向量 NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0; // 抢占优先级 NVIC_InitStruct.NVIC_IRQChannelSubPriority = 1; // 子优先级 NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStruct); NVIC_InitStruct.NVIC_IRQChannel = TIM2_IRQn; //TIM2中断 NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0; //抢占优先级 NVIC_InitStruct.NVIC_IRQChannelSubPriority = 2; //子优先级 NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStruct); //使能中断 NVIC_InitStruct.NVIC_IRQChannel =EXTI1_IRQn; NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority =0; NVIC_InitStruct.NVIC_IRQChannelSubPriority=3; NVIC_InitStruct.NVIC_IRQChannelCmd =ENABLE; NVIC_Init(&NVIC_InitStruct);
这段代码是针对STM32的中断初始化代码。其中,NVIC代表嵌入式系统中断控制器,NVIC_InitStruct代表中断配置结构体。
首先,这段代码配置了USART1串口的中断,中断优先级为1,子优先级为0。然后,配置了外部中断线0的中断,抢占优先级为0,子优先级为1。接着,配置了TIM2定时器的中断,抢占优先级为0,子优先级为2。最后,配置了外部中断线1的中断,抢占优先级为0,子优先级为3。
通过这些配置,当对应的中断事件触发时,系统会执行对应的中断服务程序,从而实现对应的功能。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)