您好,请问一下这个keil仿真中软件仿真为什么我的keil— >魔术棒—>target中选择不了外部晶振频率的?


我是跟着您的文章做的,芯片型号是stm32f103C8T6。
我留意到您文章中,描述软件仿真时说“首先确定仿真的硬件环境”,我想应该是这一步没做好?但是我又不知道具体要怎么做。所以我是直接用stlink连接单片机的。
如果看到能不能给我解答一下,谢谢。
您好,请问一下这个keil仿真中软件仿真为什么我的keil— >魔术棒—>target中选择不了外部晶振频率的?


我是跟着您的文章做的,芯片型号是stm32f103C8T6。
我留意到您文章中,描述软件仿真时说“首先确定仿真的硬件环境”,我想应该是这一步没做好?但是我又不知道具体要怎么做。所以我是直接用stlink连接单片机的。
如果看到能不能给我解答一下,谢谢。
很高兴在 CSDN 上回答你的问题,本次回答使用 【豆包】让我们一起探讨,找到解决问题的最佳方案吧。以下是关于在Keil中使用STM32F103C8T6芯片进行软件仿真时无法选择外部晶振频率问题的分析与解决方法:
Target选项卡中,有时如果没有正确配置相关的芯片信息以及其他必要设置,可能导致外部晶振频率选项无法正常显示或选择。Project - Options for Target - Device选项卡中,确保已经正确选择了STM32F103C8T6芯片。如果芯片选型错误,可能会导致相关的设置选项不正确。Project - Options for Target - Target选项卡。Xtal (MHz)(晶振频率)字段,正常情况下如果芯片选型正确,这里应该是可以手动输入外部晶振频率值的。如果不能输入,请检查是否有其他设置冲突。STM32F103C8T6,外部晶振频率可能为8M(如果使用外部晶振的话),如果使用内部晶振,可以设置为相应的内部晶振频率(例如64M除以相应的倍频系数等)。以下是一个简单的STM32F103C8T6软件仿真配置示例:
正确配置Target选项卡
Device选项卡
STM32F103C8T6。Target选项卡
Xtal (MHz):根据实际情况设置,如外部晶振为8M则输入8。Debug选项卡
Use Simulator(软件仿真)。代码示例(简单的LED闪烁代码)
#include "stm32f10x.h"
void delay_ms(uint32_t ms)
{
uint32_t i;
for(; ms > 0; ms--)
for(i = 0; i < 12000; i++);
}
int main(void)
{
// 开启GPIOC时钟
RCC->APB2ENR |= 1 << 4;
// 配置PC13为推挽输出,速度50MHz
GPIOC->CRH &= 0XFFFF0FFF;
GPIOC->CRH |= 0X00003000;
while(1)
{
// PC13输出高电平,点亮LED
GPIOC->BSRR = 1 << 13;
delay_ms(500);
// PC13输出低电平,熄灭LED
GPIOC->BRR = 1 << 13;
delay_ms(500);
}
}
通过以上配置和代码示例,应该可以正常进行软件仿真并且可以正确设置外部晶振频率。如果仍然存在问题,可能需要进一步检查Keil软件的安装以及工程的其他相关设置。