stm32通过485接串口做IAP

在做一个工程测量的项目,由于探头要下放到100米深,因此采用了走485差分信号的方式来提高传输距离和增强抗干扰能力,为了防止出问题时一遍一遍的拆开设备,所以决定通过预留出来的485的A,B线来进行固件的在线升级。

首先简要介绍一下IAP,IAP即In Application Programming(在应用中编程),一般stm32的程序下载的时候都是下载到flash中地址0x800 0000的地方,而IAP就是在0x8000000处放入IAP程序,将主程序放在后面的地方,当需要在线更新固件的时候,跳转到IAP程序中,调用flash函数重写擦写主程序所在flash地址处的内容,擦写成功后即重新跳转到主程序去运行。(更详细的介绍可以点击这个链接 http://www.51hei.com/stm32/4315.html )

stm32官方给了一个通过串口进行IAP的例程,其原理是按照ymodem协议(可自行谷歌,在此不做详细介绍),一个包一个包的发送,接收完一个包之后发送ACK,配合超级终端使用,超级终端可以按照ymodem协议来传送文件,省去了人为去编写PC端程序的工作。这个例程中提供了keil,IAR等集成开发环境的工程,在此基础上稍作修改即可完成我们的程序。首先要做的便是加上485的控制端,由于485是半双工的,接收数据的同时不能发送,发送时不能接收,所以需要加上485的收发控制,即在每次发送数据前使能485发送,发送完成之后使能485接收。例如下面代码中的RS485_TX_Enable

台达PLC 485轮询程序是指使用台达PLC控制器通过485通信总线与其他设备进行通信的一种程序。具体步骤如下: 1. 初始化:确定通信参数,包括波特率、数据位、校验位等。设置好PLC与其他设备之间的通信连。 2. 发送请求:PLC向其他设备发送请求,请求相应的数据。这个请求通常是通过发送特定的指令或者数据帧来实现的。 3. 等待应答:PLC等待其他设备对请求作出应答。应答通常包括相应的数据或者状态信息。 4. 收数据:PLC收其他设备的应答数据。通过解析收到的数据,可以得到所需的信息。 5. 处理数据:根据收到的数据,PLC进行相应的处理。这可能包括控制输出信号、更新内部状态等操作。 6. 轮询下一个设备:完成当前设备的通信后,PLC开始向下一个设备发送请求,继续进行轮询。 7. 循环执行:以上步骤会在一个循环中不断重复执行,以实现与所有设备的轮询通信。 需要注意的是,轮询程序的实现可能会有一些细微的差异,具体取决于PLC的型号和通信协议的要求。以上是一个一般的轮询程序的基本步骤。 台达PLC 485轮询程序的优点是可以实现与多个设备之间的高效通信,通过不断轮询的方式可以及时获取到各个设备的数据。同时,台达PLC也提供了完善的通信功能支持,包括多种通信协议以及灵活的配置选项,使得轮询程序的开发和调试更加方便和可靠。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值