用keil5仿真观察
打开 l上一篇.完成的keil工程‘
直接打开仿真示波器运行时会自动停止,并报错某些地址没有写的权限,此时需要在工程下添加一个文件。
先创建一个TXT文件,并添加以下内容(位置在MDK-ARM下)然后修改文件后缀为.ini
map 0x40000000, 0x40007FFF read write // APB1
map 0x40010000, 0x400157FF read write // APB2
map 0x40020000, 0x4007FFFF read write // AHB1
map 0x50000000, 0x50060BFF read write // AHB2
map 0x60000000, 0x60000FFF read write // AHB3
map 0xE0000000, 0xE00FFFFF read write // CORTEX-M4 internal peripherals
’点击以下图标
选择逻辑分析仪
点击Setup…
添加引脚和串口
Display Type均设置为Bit,设置完成一定要点击Close而不是Kill ALL
点击图标,开始运行
仿真结果:
记得检查连线和引脚添加是否空格有错。
通过keil仿真结果可以明显看出看出C13周期是1s,A3周期是3s的,接下来用逻辑分析仪验证
使用SaleaeLogic16进行协议分析
SaleaeLogic16下载链接:https://pan.baidu.com/s/1kawlhhgsY8GeIsi66p5NFw
提取码:1234
下载成功后解压安装,没什么技巧,NEXT就好了。
安装成功后,打开
这是刚打开的界面
进行设置
设置Ascii&Hex
设置波特率为115200
连接逻辑分析仪,CH0连C13;CH1连A3,CH2连A9,连线结束后USB串口接电脑,点击START,结果如下。
结果分析,清晰看出C13周期是1s,A3周期是3s。,和keil仿真的结果一样。
它表示了我们串口发送的数据,如图可以看到我们发送了hello"uc/os" \r\n,前面是我们发送的数据,后面是\r回车符和\n换行符。
还可以观察到传输一个h字符的时间是在八十微秒左右,传输每个字符之间有一个相同的时延间隔。
总结心得
掌握Keil的仿真调试代码功能,还学习使用仪器对代码运行进行故障排查和功能调测。学习了使用示波器去观察LED输出电平和串口通信的波形,分析故障。
还学会了Keil虚拟仿真逻辑仪和 真实逻辑仪(SaleaeLogic16)抓取LED输出电平和串口通信的波形,进行协议分析。
参考资料
https://blog.csdn.net/qq_45659777/article/details/121570886