关于stc单片机isp协议的一些疑问
现在在做的项目与stc单片机的isp协议相关,使用stm32给stc12单片机升级程序,在连续发送7f后,单片机是会回复的,然后stm32回复单片机型号相关的帧,单片机也回复,但是stm32向单片机发送修改波特率的帧后,单片机就不回复了,数据应该是没有问题的,校验和什么的都对,但就是不回复,尝试过几种不同的波特率,也没用,希望有了解的指点一下,,,,,,,,,,,,,, 求援助,必有重谢 是不是时间上有要求? ningling_21 发表于 2017-6-2 15:19是不是时间上有要求?
我觉得可能也是哪里有一些要求,但是我加了几种延时,都没用,无奈 如果用stc15,isp有官方例程。 hp34401a 发表于 2017-6-2 16:18
如果用stc15,isp有官方例程。
我知道,可是stc15和stc12好像不一样呢? 刚开始的波特率需1200/2400/4800,不能高于4800 ningling_21 发表于 2017-6-2 16:36
刚开始的波特率需1200/2400/4800,不能高于4800
对啊,我一直在使用1200,但是修改波特率那一帧单片机就是不回复,前一帧与型号有关的就回复,所以不知道为什么 菜鸟一坨 发表于 2017-6-2 16:43
对啊,我一直在使用1200,但是修改波特率那一帧单片机就是不回复,前一帧与型号有关的就回复,所以不知道 ...
修改后的波特率是多少? 是如何计算出来的? 抓数据包啊,我就做过自己用QT写的上位机成功烧录 协议不对,建议用原厂烧录软件抓其数据包 woshizhengjie89 发表于 2017-6-5 12:31
协议不对,建议用原厂烧录软件抓其数据包
我就是抓的数据包,但是把修改波特率那一帧发给单片机,单片机不回复,前面一帧型号相关的帧就回复,不知道为什么 ningling_21 发表于 2017-6-2 17:36
修改后的波特率是多少? 是如何计算出来的?
我试过115200/9600等几种波特率,就是通过下载器下载的时候抓的数据包 woshizhengjie89 发表于 2017-6-5 12:28
抓数据包啊,我就做过自己用QT写的上位机成功烧录
我是这样做的:上电后,单片机程序运行,检测0x7f, 检测到之后就isp复位,复位的同时,stm32仍然不断的发送0x7f给单片机,当单片机回复第一个字节后,停止发送0x7f,接收完单片机发来的一帧0x50帧后,发送回复0x50帧,然后单片机回复0x8f帧,这时候我用stm32回复0x8f修改波特率帧单片机就不回复了,不知道为什么,所有的数据帧都是抓包抓到的 woshizhengjie89 发表于 2017-6-5 12:28
抓数据包啊,我就做过自己用QT写的上位机成功烧录
如果可以,能不能把程序给我发一份参考参考啊,弄了好久了,老是有问题 if (isp_recv_end_flag)
{
// com3_send_str(USART_RX_BUF + 2, USART_RX_BUF);
if (isp_type == 0x50)
{
for (len = 0; len < 15; len++)
{
USART_SendData(USART1, buf_1);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
delay_ms(2);
}
}
if (isp_type == 0x8f)
{
// delay_ms(20);
for (len = 0; len < 15; len++)
{
USART_SendData(USART1, buf_2);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
delay_ms(2);
}
}
isp_recv_end_flag = 0;
}
上面是我对两帧的处理,一模一样,但是第一帧回复,第二帧不回复 不用管协议, 直接抓数据包啊!看人家发什么,你就发什么, 目前没有对的协议出现,你如果有时间可以总结出来 修改了波特率,那STM32的波特率有没有同时改变过来? 现在我知道为什么了,其实是有数据的,但是我用串口助手抓单片机发送的数据时,我不知道为什么波特率不对的时候竟然连错误的数据都没有抓到,因为一般而言在波特率不对时可以抓到有问题的数据,但不会什么都抓不到。在修改波特率帧发送后,单片机就修改了波特率,而我的串口助手因为不能实时修改波特率,又没有抓到错误的数据,所以我认为没有抓到数据,但实际上单片机发数据了,所以很抱歉麻烦大家了,以后还是要认真用示波器抓包或者修改串口助手波特率。 fengfeng的恒 发表于 2017-6-6 09:12
修改了波特率,那STM32的波特率有没有同时改变过来?
恩,是的,其实我修改了,但是没有在正确的位置修改,谢谢建议
页:
[1]
2