刚学debug时,出现了许多错误。选择将这些问题总结一下

1.调试方法

 2.仿真中必须进行的操作,也是各种问题的原因

(1)在MDK5中的逻辑分析窗口输入GPIO口时,出现Unknown signal的问题

(2)仿真无法连续运行,并且也运行不到主函数

选中Debug选项,Dialog DLL及其Parameter选项设置不正确,这里设置为DCM.DLL-pCM3

 到Device选项查看芯片类型,复制过去就行

如果要用硬件仿真的话,改成下面这栏配置

 

到这一步点击ok,重新仿真就可以了。 

随后再次点击仿真按钮,输入PORTX.i,成功识别到信号。

【一定要注意MDK5目前的版本,不支持F4、F7芯片。同样也不支持纯软件的串口空闲帧中断测试】

试了一晚上结果告诉我不可以,心态直接爆炸

3.没有开发板时,用虚拟串口进行虚拟串口软件仿真

用到了虚拟串口软件,网上很容易找到。

 第一步,打开串口调试助手

 第二步,开始debug,开始软件仿真。

在命令窗口的输入行中分别输入下面两条命令,按回车键完成输入

将虚拟串口com7与虚拟开发板进行绑定。

MODE COM7 115200,0,8,1
ASSIGN COM7 <S1IN> S1OUT

 然后输入内容,发送到虚拟开发版,串口窗口就能打印接受到的内容。

指令说明:
1、MODE COM2 9600,0,8,1
设置串口1。波特率为9 600,无校验位,8位数据,1位停止位。
MODE命令的作用是设置被绑定计算机串口的参数。
基本使用方式为:MODE COMx baudrate, parity, databits, stopbits
其中:
COMx(x = 1,2,…)代表计算机的串口号;
baudrate代表串口的波特率;parity代表校验方式;
databits代表数据位长度;
stopbits代表停止位长度。

2、ASSIGN COM2 < S1IN > S1OUT
命令2是将计算机的串口2绑定到单片机的串口1
COMx代表计算机的串口,可以是COM1、COM2、COM3或其他;
inreg和outreg代表单片机的串口。对于只有一个串口的普通单片机,即SIN和SOUT;对于有两个或者多个串口的单片机,即SnIN和SnOUT(n=0,1,…即单片机的串口号)。
例如:ASSIGN COM2 < SIN > SOUT
将计算机的串口2绑定到单片机的串口(针对只有一个串口的单片机)。
ASSIGN COM2 < S1IN > S1OUT
将计算机的串口2绑定到单片机的串口1(针对有多个串口的单片机,注意串口号的位置)。
需要注意的是,参数的括号是不能省略的,而outreg则是没有括号的。

 

物联沃分享整理
物联沃-IOTWORD物联网 » keil中 debug调试问题

发表评论