目录
一、使用 Keil 的仿真示波器逻辑分析引脚变化
1.仿真前的设置
注意:
本实验是在完成STM32F103C8移植uCOS基于HAL库(uc/OS-III)实验的基础上
在MDK-ARM
文件夹中添加一个文本文件(TXT),命名为debug
,改文件后缀为.ini
在debug.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
添加完后,打开keil,将添加的debug文件添加到keil项目中
添加完成后再编译一次
2.调试
编译没有错误后点击start debug
进入调试
选择逻辑分析仪
设置需要观察图像的端口号,点击setup
输入端口号,注意:每个端口的设置display type
选为bit
,
设置完成后关闭
所有设置完成后点击run
就能看到该端口的波形
3.结果
观测结果:
4.结果分析
观察上述波形可以得出:
PC13 引脚输出电平周期为 1s,PA3 引脚输出电平周期为 3s,串口输出周期为 2s
对比相关代码(main.c函数中)
PC13引脚:
PA3引脚:
USART1 串口:
可以得出,keil中的端口波形的周期与代码中的周期一致。
二、用实物(逻辑分析仪仪 SaleaeLogic16)观测波形
1.SaleaeLogic16软件的安装及初识
参考:
逻辑分析仪软件(Logic+Setup+1.1.34)的安装及界面初识
三、波形的观测
1.观测前的相关配置
清除除了0-4
的其他采集端口,
采集的将speed
设置为8MS/S
将Duration (Record data for)
设置为10
,单位为second
在Analyzers
中选择Async Serial
,添加串口波形采集
2.线路连接
逻辑分析仪 | stm32f103c8t6 |
---|---|
CH0 | PA9 |
CH1 | PA3 |
CH2 | PC13 |
3.波形观测
3.1波形的采集
设置完成后点击start
,逻辑分析仪开始采集波形
波形采集结束后的波形
3.2波形的分析
将采集到的波形放大,可以看到在串口输出的文字:hello us/OS
从图中可以看出PC13 引脚输出电平周期为 1s,PA3 引脚输出电平周期为 3s,串口输出周期为 2s,与程序所设计的端口的周期相同。
4.协议分析
UART通信协议进行一个字节数据的传输时就是在信号线上产生八个高低电平的组合,数据传送速率用波特率来表示,即每秒钟传送的二进制位数。例如数据传送速率为120字符/秒,而每一个字符为10位(1个起始位,7个数据位,1个校验位,1个结束位),则其传送的波特率为10×120=1200字符/秒=1200波特。简单来说就是,如果你配置的波特率为9600,那么你每一bit时间就是1/9600 = 104us。
四、总结
本实验在STM32F103C8移植uCOS基于HAL库(uc/OS-III)实验的基础上,还是比较简单的。
五、参考资料
https://blog.csdn.net/qq_57357292/article/details/121632808?spm=1001.2014.3001.5501
逻辑分析仪软件(Logic+Setup+1.1.34)的安装及界面初识
Saleae Logic 16 逻辑分析仪使用上手手册