在跟着STM32视频学习的时候,在仿真环节,自己的软件弹出
"Unknown Signal."
的对话框。在认真和老师的视频对照仿真环节设置的时候发现了端倪,这就记录分享解决方法。
本文仅发布在CSDN 青云双青 和我的个人博客,其他地方出现均为搬运
问题复现
编译代码、点击Debug按钮,然后点击 Logic Analyzer
,在点击 Setup
按钮后会弹出 Setup Logic Analyzer
对话框,然后按照你设定的GPIO端口和引脚进行装载,但是此时,弹窗出现了!
解决方法
那么接下来你就跟着我的设置一步一步来,保证你可以正常使用仿真!
仿真前的设置
- 首先编译代码,先保证代码不出问题
- 其次点击魔术棒,到
Debug
选项卡进行设置 - 当然啦,要仿真的话点击
Use Simulator
选择按钮
然后呢,你的界面可能是这样的
这个就是没有经过设置的界面,重要设置的地方就是方框里面的东西。
第一个空需要修改为
DARMSTM.DLL
第二个空需要修改为
我这里以我用的芯片 STM32F103C8T6
为例说明
-pSTM32F103C8
设置完成后如图
点击OK即可,然后再次编译,然后开始 Debug
仿真
下面我以我自己设置的对PC13引脚的电平变化仿真为例说明仿真情况
我的相关的GPIO初始化的代码
void LedGpioInit(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_13;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStruct);
}
我的相关的执行闪烁的代码
void LedControl(void)
{
GPIO_SetBits(GPIOC,GPIO_Pin_13);
SysTickDelayMs(1000);
GPIO_ResetBits(GPIOC, GPIO_Pin_13);
SysTickDelayMs(1000);
}
最后置于主函数的死循环中
int main(void)
{
while(1)
{
LedControl();
}
}
仿真的效果
最后的效果还可以,几乎完全接近1s电平反转一次
注意的地方
- 对某个端口的某个引脚的设置方法为,此处以PC13为例
PORTC.13 然后回车即可
- 在仿真的时候记得将下面的
Display Type
设置为Bit
- 可以开启多个的引脚的波形图,也可以设置不同的波形颜色
- 可以点击
ZOOM
里面的IN
-OUT
-ALL
对波形的输出进行缩放,方便查看
本文使用MarkDown语法编辑,如有疑问可以私信或者在下方评论留言!