无限虚空 2024-05-26 22:24 采纳率: 0%
浏览 25

stm32仿真不了的问题

为什么protues8.6版本,仿真stm32很多功能仿真不了,比如按键外部中断等。

  • 写回答

3条回答 默认 最新

  • 关注

    晚上好🌙🌙🌙
    本答案参考ChatGPT-3.5

    原因:

    Proteus 8.6版本的STM32模块库不够完善,无法完全模拟针对特定功能的芯片,《ST官方库》和《Keil官方库》也与之不兼容。此外Simulation1.exe(Proteus仿真引擎)本身的不足也导致模拟时无法达到实际效果。

    解决方案:

    1.更新Proteus版本,如更新至Proteus 8.7 SP3版,它大幅改进了STM32模块库,支持针对STM32常用功能的模拟。

    2.使用“Proteus修改器”这个软件修改Proteus的一些文件,增加STM32支持的外设(比如按键、定时器、UART等)。

    3.使用其他仿真工具,如更全面的IAR工具集、更为实用的KEIL U版本、更多功能的UVISION等。

    4.外部调试,使用好USART/UART和JTAG调试手段。

    代码示例(外部中断):

    外部中断是STM32的重要功能之一,它常在指定的引脚上接入按键控制,有按键按下时则引脚获得高电平,触发外部中断。

    下面是正确的基于STM32F103C8T6芯片模拟外部中断的代码实现:

    首先需要在stm32f10x_conf.h文件中打开中断:

    #define USE_EXTI_0_1 #define USE_EXTI_2_3 #define USE_EXTI_4_15

    在main函数中初始化GPIO和外部中断:

    /* GPIO Initialize */ void GPIO_Init_Config(void) { GPIO_InitTypeDef GPIO_InitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE); RCC_ClearFlag();

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure);

    GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);

    EXTI_InitTypeDef EXTI_InitStructure; EXTI_InitStructure.EXTI_Line = EXTI_Line0; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure);

    NVIC_InitTypeDef NVIC_InitStructure; NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); }

    最后,编写触发的中断函数:

    void EXTI0_IRQHandler(void) { if(EXTI_GetITStatus(EXTI_Line0) != RESET) { // Do something... EXTI_ClearITPendingBit(EXTI_Line0); } }

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月26日

悬赏问题

  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真
  • ¥15 关于#c语言#的问题,请各位专家解答!