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

发现bug, STM32CubeMX V4.6.0不能生成PC2外部中断代码!

[复制链接]
wjandsq 提问时间:2015-2-1 19:59 /
本帖最后由 wjandsq 于 2015-3-16 13:37 编辑

/**
  ******************************************************************************
  * @file    stm32f1xx_it.c
  * @date    01/02/2015 19:56:17
  * @brief   Interrupt Service Routines.
  ******************************************************************************
  *
  * COPYRIGHT(c) 2015 STMicroelectronics
  *
  * Redistribution and use in source and binary forms, with or without modification,
  * are permitted provided that the following conditions are met:
  *   1. Redistributions of source code must retain the above copyright notice,
  *      this list of conditions and the following disclaimer.
  *   2. Redistributions in binary form must reproduce the above copyright notice,
  *      this list of conditions and the following disclaimer in the documentation
  *      and/or other materials provided with the distribution.
  *   3. Neither the name of STMicroelectronics nor the names of its contributors
  *      may be used to endorse or promote products derived from this software
  *      without specific prior written permission.
  *
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  ******************************************************************************
  */
/* Includes ------------------------------------------------------------------*/
#include "stm32f1xx_hal.h"
#include "stm32f1xx.h"
#include "stm32f1xx_it.h"
/* USER CODE BEGIN 0 */

/* USER CODE END 0 */
/* External variables --------------------------------------------------------*/


extern TIM_HandleTypeDef htim2;
extern DMA_HandleTypeDef hdma_usart1_tx;
extern UART_HandleTypeDef huart1;
#n/******************************************************************************/
/*            Cortex-M3 Processor Interruption and Exception Handlers         */
/******************************************************************************/


/**
* @brief This function handles DMA1 channel4 global interrupt.
*/
void DMA1_Channel4_IRQHandler(void)
{
#t/* USER CODE BEGIN DMA1_Channel4_IRQn 0 */
#n#t/* USER CODE END DMA1_Channel4_IRQn 0 */
#tHAL_DMA_IRQHandler(&hdma_usart1_tx);
#t/* USER CODE BEGIN DMA1_Channel4_IRQn 1 */
#n#t/* USER CODE END DMA1_Channel4_IRQn 1 */
}#n
/**
* @brief This function handles EXTI line2 interrupt.
*/
void EXTI2_IRQHandler(void)
{
#t/* USER CODE BEGIN EXTI2_IRQn 0 */
#n#t/* USER CODE END EXTI2_IRQn 0 */
#t
get(halHandler) failed on instance of com.st.microxplorer.mcu.NvicVector
The problematic instruction:
----------
==> ${vector.halHandler} [on line 123, column 9 in stm32xx_it_c.ftl]
----------
Java backtrace for programmers:
----------
freemarker.template.TemplateModelException: get(halHandler) failed on instance of com.st.microxplorer.mcu.NvicVector
at freemarker.ext.beans.BeanModel.get(BeanModel.java:223)
at freemarker.core.Dot._getAsTemplateModel(Dot.java:76)
at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
at freemarker.core.Expression.getStringValue(Expression.java:93)
at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.IfBlock.accept(IfBlock.java:82)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:160)
at freemarker.core.Environment.visit(Environment.java:351)
at freemarker.core.IteratorBlock.accept(IteratorBlock.java:95)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.Environment.visit(Environment.java:233)
at freemarker.core.CompressedBlock.accept(CompressedBlock.java:73)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.Environment.process(Environment.java:176)
at freemarker.template.Template.process(Template.java:232)
at com.st.microxplorer.codegenerator.CodeEngine.freemarkerDo(CodeEngine.java:223)
at com.st.microxplorer.codegenerator.CodeEngine.genCode(CodeEngine.java:162)
at com.st.microxplorer.codegenerator.CodeGenerator.generateOutputCode(CodeGenerator.java:1293)
at com.st.microxplorer.codegenerator.CodeGenerator.generatePeriphConfigCode(CodeGenerator.java:805)
at com.st.microxplorer.codegenerator.CodeGenerator.generateCodeFiles(CodeGenerator.java:596)
at com.st.microxplorer.codegenerator.CodeGenerator.generateCode(CodeGenerator.java:406)
at com.st.microxplorer.plugins.projectmanager.engine.ProjectBuilder.generateCode(ProjectBuilder.java:606)
at com.st.microxplorer.plugins.projectmanager.engine.ProjectBuilder.createCode(ProjectBuilder.java:532)
at com.st.microxplorer.plugins.projectmanager.engine.ProjectBuilder.createProject(ProjectBuilder.java:323)
at com.st.microxplorer.plugins.projectmanager.engine.GenerateProjectThread.run(GenerateProjectThread.java:32)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor74.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:825)
at freemarker.ext.beans.BeanModel.invokeThroughDescriptor(BeanModel.java:272)
at freemarker.ext.beans.BeanModel.get(BeanModel.java:183)
... 34 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
at com.st.microxplorer.mcu.NvicVector.GenericGeneratorExtiTsc(NvicVector.java:789)
at com.st.microxplorer.mcu.NvicVector.getHalHandler(NvicVector.java:203)
... 40 more

收藏 评论6 发布时间:2015-2-1 19:59

举报

6个回答
wjandsq 回答时间:2015-2-1 20:26:43
代码生成故障,使用PC3可以生成,使用PC2无法生成中断代码。
Code Generation.png
安姆虫 回答时间:2015-3-15 00:44:54
wjandsq 发表于 2015-2-1 20:26
代码生成故障,使用PC3可以生成,使用PC2无法生成中断代码。

楼上的问题怎么没有人回答一下,我也碰到相同问题!
wjandsq 回答时间:2015-3-16 13:38:09
希望官方给予解决,或者哪位大侠出手。
foxglove 回答时间:2015-3-16 13:55:43
测试一下看看
wjandsq 回答时间:2015-3-16 14:26:15
PC3正常,设定PC2为外部下降沿中断,就乱套了。

GPIO_PC2.zip

下载

4.57 MB, 下载次数: 13, 下载积分: ST金币 -1

PC3正常,设定PC2为外部下降沿中断,就乱套了。

wjandsq 回答时间:2015-4-8 15:12:13
4.7.0 版本已解决了这个问题,可以正确地生成PC2的外部GPIO中断代码。

所属标签

相似问题

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