基于Modbus的RS485通讯+STM32+IAR

发布者:Amybaby最新更新时间:2018-10-17 来源: eefocus关键字:Modbus  RS485通讯  STM32  IAR 手机看文章 扫描二维码
随时随地手机看文章

最近一直在看Modbus相关的内容,也在网上搜罗了许久,发现大部分内容都是基于协议的书面解释,很少有成功的例程供大家参考,在此将自己最近更改调试通过的例子跟大家分享一下,在此要感谢某论坛的xukai871105.

介绍下附件工程:采用的MCU为STM32F103RBT6,ST库版本为3.5版,FreeModbus为1.5版,开发环境为IAR6.3版,调试器为Jlink V8,用到的调试工具为Jobs版的USB转RS485转接板。


话不多说,上图:代码中大部分都有详细的注释:

基于Modbus的RS485通讯+STM32+IAR

看看Jobs版的转接板吧:

基于Modbus的RS485通讯+STM32+IAR

来个上位机虚拟端Modbus Poll 的效果图:

基于Modbus的RS485通讯+STM32+IAR

工程文件打包上传:

基于Modbus的RS485通讯 STM32+FreeModbus+IAR.zip


关键字:Modbus  RS485通讯  STM32  IAR 引用地址:基于Modbus的RS485通讯+STM32+IAR

上一篇:ARM 低功耗电流过大总结
下一篇:STM32 JTAG引脚做普通I/O口用

推荐阅读最新更新时间:2024-03-16 16:16

关于STM32串口空闲中断IDEL的问题
1.空闲中断是接受数据后出现一个byte的高电平(空闲)状态,就会触发空闲中断.并不是空闲就会一直中断,准确的说应该是上升沿(停止位)后一个byte,如果一直是低电平是不会触发空闲中断的(会触发break中断)。 2.关于第二点有要铺垫的三个情况,datasheet中 当一空闲帧被检测到时,其处理步骤和接收到普通数据帧一样,但如果IDLEIE位被设置将产生一个中断 空闲符号被视为完全由'1'组成的一个完整的数据帧,后面跟着包含了数据的下一帧的开始位'1'的位数也包括了停止位的位数” 空闲符号的配图后面跟这一个低电平. 有人理解为只有收到下一个数据的起始位才会触发中断,这样理解是不对的,应该是数据
[单片机]
142 条 STM32 学习笔记(必收藏)
1、AHB系统总线分为APB1(36MHz)和APB2(72MHz),其中2 1,意思是APB2接高速设备。 2、Stm32f10x.h相当于reg52.h(里面有基本的位操作定义),另一个为stm32f10x_conf.h专门控制外围器件的配置,也就是开关头文件的作用 3、HSE Osc(High Speed External Oscillator)高速外部晶振,一般为8MHz,HSI RC(High Speed InternalRC)高速内部RC,8MHz 4、LSE Osc(Low Speed External Oscillator)低速外部晶振,一般为32.768KHz,LSI RC(Low Speed InternalR
[单片机]
基于STM32嵌入式系统的智能控制网络终端设计
  智能网络终端是实现智能化管理的嵌入式终端设备。通常具有安全门禁系统和自动化控制的基本功能。本文重点介绍基于 STM32 的智能嵌入式终端的网络控制功能的设计和实现。    1智能网络通信实现方案   将 嵌入式系统 与Internet连接起来实现远距离信息获取和控制功能的本质是 嵌入式系统 本身能够实现TCP/IP网络通信协议。该协议的解决方案总体上可分为两大类。第一类是直接在嵌入式设备上实现TCP/IP,使之直接连上Internet。这实质上是由MCU及内部固化TCP/IP协议的芯片组成应用系统的核心,MCU可以直接拨号上网,这种方法的硬件电路相对简单,也不需要中间环节的支持。但是由于使用了TCP/IP协议芯片,因此需要大
[单片机]
基于<font color='red'>STM32</font>嵌入式系统的智能控制网络终端设计
STM32】MDK中寄存器地址名称映射分析
对于MCU,一切底层配置,最终都是在配置寄存器。 STM32F1xx官方资料: 《STM32中文参考手册V10》-第8章通用和复用功能IO(GPIO和AFIO) 51单片机访问地址 51单片机经常会引用一个reg51.h的头文件。下面看看它是怎么把名字和寄存器联系在一起的: sfr p0=0x80; p0=0x00; sfr是一种扩充数据类型,点用一个内存单位,值域为0-255.利用它可以访问51单片机内部所有的特殊功能寄存器。前一句“sfr p0=0x80”就是将P0映射到地址0x80。后一句“p0=0x00”就是往p0地址(0x80)代表的寄存器写值。 STM32访问地址 寄存器地址名称映射 STM32肯定也是
[单片机]
【<font color='red'>STM32</font>】MDK中寄存器地址名称映射分析
关于STM32单片机GPIO口上拉与下拉输入
以前GPIO上接的电路都是低电平触发的那种,新画了个板子有一个按键设计的是高电平触发,结果IO口设置成上拉输入后,怎么读都不正确,按键电路如图1。无奈只能去调试一下,发现当设置为上拉输入后,其ODR(GPIO输出数据寄存器)相应的也置为1,百思不得其解。 图1 按键电路 于是去看一下GPIO的结构图: I/O引脚结构图 由图可以发现其实输出寄存器与输入寄存器之间在I/O引脚处是线与状态,在GPIO设置成上位输入时,其上拉电阻闭合,这时如果输出寄存器设置为0那么在IO口内部就会自己损耗电流,而这些电流的损耗是会增加功耗的。因此当GPIO设置成上拉输入时,相应的输出寄存器也设置为1. 将按键电路与I/O
[单片机]
关于<font color='red'>STM32</font>单片机GPIO口上拉与下拉输入
STM32开发笔记68: keil中使用ST-Link不能成功下载的真实原因
单片机型号:STM32F091RCT6 在STM32开发笔记67: 在keil中使用ST-Link不能成功下载的解决方法提到解决keil中使用ST-Link不能成功下载的一种方法,经仔细分析其实原因还在于程序上。 不能成功下载的程序中,包含如下程序,: CInit::CInit(uint8_t mode) { //底层初始化 HAL_Init(); //GPIO时钟使能 __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOD_CLK_ENAB
[单片机]
STM32定时器---正交编码器模式详解
编码器分类: 按工作原理:光电式、磁电式和触点电刷式 按码盘的刻孔方式:增量式和绝对式两类 由于博主接触面还不是很广,一共就用过两个种类的编码器,都是属于光电的 差分编码器:一般由8根线连接 信号线分别为 A+ A- B+ B- Z+ Z- 以及VCC和GND 这里有一种不需要Z信号的,6线差分A+ A- B+ B- VCC 和GND 正交编码器:一般是5根线连接,信号线分别为A B Z VCC和GND 编码器线数: 就是旋转一圈你的A(B)会输出多少个脉冲 ,这里的A B就是上面的输出脉冲信号线,它们转一圈发出的脉冲数一样的,不过存在90°相位差 通常都是360线的 线数越高代表编码器能够反应的位置精度越高 相位差为90°
[单片机]
基于STM32腾讯云物联网平台和微信小程序应用
腾讯物联网平台简介 腾讯云物联网开发平台(IoT Explorer)是面向智慧生活与产业互联应用的物联网 PaaS 平台,为基于物联网的各行业设备制造商、方案商及应用开发商提供一站式设备智能化服务。平台提供海量设备连接与管理能力及基于腾讯连连的小程序应用开发能力,并打通腾讯云基础产品及 AI 能力,聚合腾讯生态内容能力。从而提升传统行业设备智能化的效率,降低用户的开发运维成本。 为用户提供一站式产品开发服务,满足智慧生活与产业互联场景下的设备上云开发效率。用户通过产品定义、物模型管理、设备开发、设备调试即可完成设备快速接入到平台。对于智慧生活领域的应用,用户可选择腾讯连连官方小程序或 OEM 小程序、App,通过交互开发定
[单片机]
基于<font color='red'>STM32</font>腾讯云物联网平台和微信小程序应用
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved