[STM32F1] 急求stm32f103的程序下载问题

[复制链接]
2974|22
 楼主| ime就是爱自己 发表于 2017-5-3 11:08 | 显示全部楼层 |阅读模式
现状:一个电路板内有两片单片机,分别控制左轮电机和右轮电机,两个电机的硬件电路及功能几乎一样,但是两个电机的ID地址不一样。
希望:以前是左右轮电机分别烧写不同hex文件的程序,现在希望程序合二为一,程序中通过检测单片机一个GPIO的高低电平,来选择程序下载到左侧或右侧单片机。
问题:IO高低电平判断后的下载函数怎么写?
zhaoyu2005 发表于 2017-5-3 11:39 | 显示全部楼层
估计你实现不了。为甚么当初不做成:一样的程序,根据引脚电平判断是左轮还是右轮,然后执行
 楼主| ime就是爱自己 发表于 2017-5-3 12:02 | 显示全部楼层
zhaoyu2005 发表于 2017-5-3 11:39
估计你实现不了。为甚么当初不做成:一样的程序,根据引脚电平判断是左轮还是右轮,然后执行 ...

程序是我接手之前有人写好的,当时是两个单片机烧不同的hex。
现在为了将程序合二为一,电路板上两个单片机都使用一个GPIO脚,左侧为输入高电平,右侧为输入低电平。
上电后检测该IO脚为高电平,则左侧下载;低电平,则右侧下载。这应该可以实现的吧。
 楼主| ime就是爱自己 发表于 2017-5-3 12:04 | 显示全部楼层
zhaoyu2005 发表于 2017-5-3 11:39
估计你实现不了。为甚么当初不做成:一样的程序,根据引脚电平判断是左轮还是右轮,然后执行 ...

高低电平确定后,程序下载的函数不会写。您知道怎么写吗?

评论

从原理上可以实现,但是做起来有难度  发表于 2017-5-3 12:26
mmuuss586 发表于 2017-5-3 12:49 | 显示全部楼层
那你就些BOOT程序;
还是很复杂的,你搞不定;
 楼主| ime就是爱自己 发表于 2017-5-3 13:12 | 显示全部楼层
mmuuss586 发表于 2017-5-3 12:49
那你就些BOOT程序;
还是很复杂的,你搞不定;

这是个任务,需要解决。
虽然不容易,也躲不过去,只能一点一点地去解决掉。
 楼主| ime就是爱自己 发表于 2017-5-3 13:32 | 显示全部楼层
mmuuss586 发表于 2017-5-3 12:49
那你就些BOOT程序;
还是很复杂的,你搞不定;

硬件上左侧的IO已经拉高,右侧的IO已经拉低。
上电后,立刻就能检测出左侧还是右侧。然后就启动下载。
您知道启动下载大概需要写哪些点吗?
胡慧海 发表于 2017-5-3 16:02 | 显示全部楼层
你可以看看串口IAP下载的知识,对你有帮助。不过问题来了,你的这俩个hex文件存在哪里呢?假如是为了实现一个电机有多种任务方式。为什么不用rtos呢
andyding 发表于 2017-5-3 17:32 | 显示全部楼层
用拨码开关编写一下电机ID地址,一套程序就好了
mmuuss586 发表于 2017-5-3 20:52 | 显示全部楼层
ime就是爱自己 发表于 2017-5-3 13:12
这是个任务,需要解决。
虽然不容易,也躲不过去,只能一点一点地去解决掉。 ...

那你只能看官方的在线升级程序了;

或者参考一些开发板的厂家的参考代码,也许有例程;
xiao_long 发表于 2017-5-3 23:02 | 显示全部楼层
为什么不换个方式,用同一个程序,在程序里判断IO口的高低,来执行不同的涵数。这样应该很容易实现。
qnmdsb2008 发表于 2017-5-4 00:38 | 显示全部楼层
这个需要了解IAP功能,同时所谓的下载功能也多着呢。一个可以考虑用串口或者类似端口接收数据包,一个可以模拟jtag或者SWD波形的方式做。提供程序的单片机需要对单片机Flash分区写操作,或者考虑外扩flash,把程序代码数据先存好,然后根据IO电平选择读flash的地址。接收的单片机将收到程序数据写入单片机指定区域flash,单片机接收完毕复位要做的操作就是从指定flash区域执行程序。不知道这么说 容易理解吗?
 楼主| ime就是爱自己 发表于 2017-5-8 18:40 | 显示全部楼层
andyding 发表于 2017-5-3 17:32
用拨码开关编写一下电机ID地址,一套程序就好了

嗯,思路相似。
 楼主| ime就是爱自己 发表于 2017-5-8 18:41 | 显示全部楼层
xiao_long 发表于 2017-5-3 23:02
为什么不换个方式,用同一个程序,在程序里判断IO口的高低,来执行不同的涵数。这样应该很容易实现。 ...

是用这样的方式
 楼主| ime就是爱自己 发表于 2017-5-8 18:41 | 显示全部楼层
qnmdsb2008 发表于 2017-5-4 00:38
这个需要了解IAP功能,同时所谓的下载功能也多着呢。一个可以考虑用串口或者类似端口接收数据包,一个可以 ...

刚开始我理解有点偏差,其实没有这么复杂。
七颗咖啡豆 发表于 2017-5-9 17:44 | 显示全部楼层
你提出这个问题,估计你自己肯定搞不定了。
方法:用另第三个个MCU模拟PC串口下载hex文件即可
wwppd 发表于 2017-5-9 23:09 | 显示全部楼层
使用中断能不能判断?
wwppd 发表于 2017-5-9 23:14 | 显示全部楼层
两个hex怎么下载到同一个芯片里面?
Stannis 发表于 2017-5-10 21:53 | 显示全部楼层
根据引脚电平判断是左轮还是右轮
hudi008 发表于 2017-5-10 23:41 | 显示全部楼层
程序合并?这个怎么可能实现。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

16

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部