本帖最后由 ljxh401 于 2022-8-30 12:12 编辑
将boot0=1 上电
然后 电脑的 使用 SSCOM 发送 0x79
收到STM32F103 回复 0x79 代表系统已经进入ISP 模式
然后发送第一个命令 0x00 0xFF 获取版本号,机器没有回复, 再点击多几次发送 0x00 0xFF 就回复0x1F 代表解释命令失败
但是如果我 单次发送 0x00 再点击发送 0xFF 就能正确回复
串口通信如下
[12:01:50.170]发→◇7F □ //电脑串口发送握手命令
[12:01:50.174]收←◆79 //单片机回复握手成功
[12:01:54.483]发→◇00 FF □ //发送获取版本命令,没有回复
[12:01:55.839]发→◇00 FF □ //继续发送获取版本命令
[12:01:55.845]收←◆1F //回复 NAK
[12:01:56.927]发→◇00 FF □
[12:01:57.607]发→◇00 FF □
[12:01:57.622]收←◆1F
[12:01:59.533]发→◇00 □ //将获取版本命令 单次发送一个字节 0x00
[12:02:00.969]发→◇FF □ //将获取版本命令 单次发送一个字节 0xFF
[12:02:00.974]收←◆79 0B 22 03 2C 70 E0 11 21 8B 6E 74 CC B9 82 93 2F FF //成功接收到回复数据
但是我如果用单片机做烧录器的ISP连续发送 00 FF 是不用等待的,但是电脑的USB 串口是要等待的奇怪,感觉是 STM32F103通过 0x7F 命令自检我的电脑的波特率不太正确
但是使用电脑端的 mcuisp软件 进行 isp 烧录是正常的,不知道别人是怎么做到的
而且我尝试在电脑端用自己写的程序去实现 isp
发送 7F 收到 79
发送 00 等 1毫秒 发送 FF
接收到 79 0B 22 ... ... 后面的数据就不正确了,感觉波特率不正确
|