搜索
bottom↓
楼主: xukai871105

STM32 移植FreeModbus 详细过程

  [复制链接]

出0入0汤圆

 楼主| 发表于 2014-6-11 12:47:03 | 显示全部楼层
fiaanull 发表于 2014-6-9 14:47
楼主,请问后来有没有用MDK写的,对IAR不是很熟悉啊

Keil我基本没有使用过,你可以根据IAR的代码修改一下!
希望你可以成功!

出0入0汤圆

 楼主| 发表于 2014-6-11 12:48:49 | 显示全部楼层
weiming4033 发表于 2014-6-11 08:38
好东西,有没有can方面的资料

CAN没怎么弄过!

出0入0汤圆

发表于 2014-6-18 17:26:23 | 显示全部楼层
MARK                                                                                

出0入0汤圆

发表于 2014-6-29 15:32:23 | 显示全部楼层
先马克,好多地方都用到了这个东东

出0入0汤圆

发表于 2014-7-4 17:00:15 | 显示全部楼层
楼主你好 刚参考你的程序 移植到stm32f407igt6 上位机移植超时

出0入0汤圆

 楼主| 发表于 2014-7-5 17:27:05 | 显示全部楼层
白色风铃101 发表于 2014-7-4 17:00
楼主你好 刚参考你的程序 移植到stm32f407igt6 上位机移植超时 ...

http://www.amobbs.com/thread-5544942-1-1.html 你先看看这个帖子能不能帮到你!

出0入0汤圆

发表于 2014-7-5 19:30:01 | 显示全部楼层
楼主有模块化的思想,我最近也在封装modbus的slave和master,尽量使上层调用的时候更加方便。
建议:将这些slave和master的功能写在任务里,这样更加明了
探讨:
1. slave模块编写比较简单,等待接受-》判断格式-》填充帧-》发送这样一个流程
2, master端的遇到点问题,我们知道modbus收发的时候我的帧的function no(0x03, 0x06等)是要一一对应的
   1) 能否连续同时发送两个不同function no的帧
   2) 如果可以需要加入缓冲发送/接受Fifo
   3) 如果不可以需要加入发送Lock,在收到正确的反馈或者等待一段时间没有收到反馈帧后解掉发送Lock
3.  modbus的帧我们可以分为两种,一种是读数据的帧(request),还有是反馈数据的帧(response),都用指针数据的格式传入和传出有用的数据,这样的思路对吗?

出0入0汤圆

 楼主| 发表于 2014-7-6 08:52:39 | 显示全部楼层
Michael_STM 发表于 2014-7-5 19:30
楼主有模块化的思想,我最近也在封装modbus的slave和master,尽量使上层调用的时候更加方便。
建议:将这些 ...

无论是主机还是从机,我个人建议看看python库 modbus-tk 和 pymodbus,或许会有不少的收获。

我虽然没有在本论坛发表过modbus 主机的帖子,但是modbus主机我还是用的而不少。
主要在树莓派上使用modbus-tk。
modbus-tk既可以做主机也可以做从机,既可以是RTU也可以是TCP,比较好用。

出0入0汤圆

发表于 2014-7-6 10:45:11 | 显示全部楼层
很好的资料感谢分享
头像被屏蔽

出0入0汤圆

发表于 2014-7-6 13:07:09 | 显示全部楼层
mark一个……

出0入0汤圆

发表于 2014-7-10 09:25:32 | 显示全部楼层
昨天看了一天的楼主的程序有个地方不甚了解ENTER_CRITICAL_SECTION(  );EXIT_CRITICAL_SECTION( );这两条就是为了针对不同处理器需要定义的禁止全局中断和开启全局中断?请前辈指点
void
eMBRTUStart( void )
{
    ENTER_CRITICAL_SECTION(  );
    /* Initially the receiver is in the state STATE_RX_INIT. we start
     * the timer and if no character is received within t3.5 we change
     * to STATE_RX_IDLE. This makes sure that we delay startup of the
     * modbus protocol stack until the bus is free.
      最初接收器是在状态STATE_RX_INIT。我们开始
     *定时器,如果T3.5内没有接收到字符我们改变
     *到STATE_RX_IDLE。这可以确保我们拖延的启动
     * modbus协议栈,直到总线空闲。
     */
    //eRcvState 初始化状态
    eRcvState = STATE_RX_INIT;
    //使能接收,禁止发送
    vMBPortSerialEnable( TRUE, FALSE );
    //启动定时器
    vMBPortTimersEnable();

    EXIT_CRITICAL_SECTION( );
}

出0入0汤圆

发表于 2014-7-10 10:31:29 | 显示全部楼层
哥们,你太厉害了

出0入0汤圆

发表于 2014-7-10 10:31:56 | 显示全部楼层
不得不再顶一下。

出0入0汤圆

发表于 2014-7-10 10:59:09 | 显示全部楼层
MARK.谢谢

出0入0汤圆

发表于 2014-7-10 14:35:19 | 显示全部楼层
这个要支持。

出0入0汤圆

 楼主| 发表于 2014-7-10 16:49:06 | 显示全部楼层
XIUQIN 发表于 2014-7-10 09:25
昨天看了一天的楼主的程序有个地方不甚了解ENTER_CRITICAL_SECTION(  );EXIT_CRITICAL_SECTION( );这两条就 ...

是的,不过在这个代码里面都是空的!

出0入0汤圆

发表于 2014-7-10 17:31:10 | 显示全部楼层
MARK 一下~

出0入0汤圆

发表于 2014-7-11 20:06:26 | 显示全部楼层
xukai871105 发表于 2014-7-10 16:49
是的,不过在这个代码里面都是空的!

谢谢!看了别的网友的FreeModbus这两条是关闭和开启全局中断,是防止重入的,FreeModbus留出宏定义,只要跟踪到这里在后面加上对应的单片机中断关闭和开启指令就可以了。

出0入0汤圆

发表于 2014-7-11 20:14:02 | 显示全部楼层
看了楼主的几个CC2530的使用贴,感觉楼主研究它挺深的,特别是哪个点对点的帖子,很钦佩!我用BasicRF基础协议调都搞得一头雾水,好像这个协议有BUG,关闭了帧过滤才好点,不然说不定何时就死了!向楼主学习.

出0入0汤圆

发表于 2014-7-12 17:47:15 | 显示全部楼层
本帖最后由 andyluo324 于 2014-7-12 17:50 编辑

楼主,按照您的方法移植这个程序,MCU是NXP LPC2138,
串口用232 通讯,上位机没1S要一次数据, 运行好几天都没事,
但是用485 通讯,开机后也正常收发,但是 几秒或几十秒就断开了, 上位机还在发送数据, 但是2138已经不回复数据了,
这是不是说明485收发模式的切换有问题?
void vMBPortSerialEnable( BOOL xRxEnable, BOOL xTxEnable ) //控制串口的收发中断
{
    if( xRxEnable )
    {
                               
        SET485INPUT();                  //485输入模式
        U1IER |= 0x01;                        //使能接收和接收中断
                     
    }
    else
    {
                                 
        SET485OUT();                        //485输出模式
        U1IER &= ~0x01;
                               
    }
    if( xTxEnable )
    {
                          
        U1IER |= 0x02;                   //使能发送数据寄存器空标志  
        prvvUARTTxReadyISR(  );      
    }
    else
    {
        
        U1IER &= ~0x02;
    }
}

这个MCU没有串口发送完成中断,我改怎么处理呢?

出0入0汤圆

发表于 2014-7-12 18:23:48 | 显示全部楼层
标记,STM32 移植FreeModbus 详细过程

出0入0汤圆

发表于 2014-7-13 21:18:57 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2014-7-14 23:32:31 | 显示全部楼层
只看到一半,标记

出0入0汤圆

发表于 2014-7-15 19:55:02 | 显示全部楼层
精华帖,必须赞一个,RTU命令用Swtich搞,命令改动,每次都要重新来一次,太蛋疼了,学习下楼主的分享,在此先谢谢楼主分享

出0入0汤圆

发表于 2014-7-15 20:19:16 | 显示全部楼层
标记,STM32 移植FreeModbus 详细过程

出0入0汤圆

发表于 2014-7-22 10:15:00 | 显示全部楼层
做个记号,谢谢!

出0入0汤圆

发表于 2014-7-22 11:03:47 | 显示全部楼层
好东西收藏起来

出0入0汤圆

发表于 2014-7-23 16:14:36 | 显示全部楼层
记号:free Modbus 协议,参考贴。

出0入0汤圆

发表于 2014-7-23 19:50:39 | 显示全部楼层
mark.......

出0入0汤圆

发表于 2014-7-23 21:00:38 | 显示全部楼层
Mark一Mark~

出0入0汤圆

发表于 2014-7-23 23:22:46 | 显示全部楼层
楼主很好很强大啊!!

出0入0汤圆

发表于 2014-7-24 08:06:03 | 显示全部楼层
存着,学习学习。。。

出0入0汤圆

 楼主| 发表于 2014-7-24 08:28:18 | 显示全部楼层
NC_Zyang 发表于 2014-7-24 08:06
存着,学习学习。。。

我觉得这么长时间过去了,我应该再整理整理。这样大家用起来可以更顺手些!

出0入0汤圆

发表于 2014-7-25 11:18:47 | 显示全部楼层
收下好好看看

出0入0汤圆

发表于 2014-7-25 13:43:13 | 显示全部楼层
虽然帖子过了很久了。看到这个帖子还是禁不住的相给楼主纠下偏差。
以我的判断,对于3.5个字符的计算是以us为单位的。而tim4的实际是以50us为基本单位的。
难道楼主就这样直接赋值过去吗?

我想至少对于us50us的延时的给定时器赋值的时候,需要把以us为单位的数值除以50以后再赋值给tim4的周期寄存器。

所以你的代码里面,对于延时检测整整扩大了50倍。我估计除非真的通信故障,否则的话不会有延时之类的东西故障。

出0入4汤圆

发表于 2014-7-25 16:12:58 | 显示全部楼层
xukai871105 发表于 2014-7-24 08:28
我觉得这么长时间过去了,我应该再整理整理。这样大家用起来可以更顺手些! ...

作为初学者, 很是感谢你的共享精神

出0入0汤圆

 楼主| 发表于 2014-7-28 08:35:00 | 显示全部楼层
xkdwangcs 发表于 2014-7-25 13:43
虽然帖子过了很久了。看到这个帖子还是禁不住的相给楼主纠下偏差。
以我的判断,对于3.5个字符的计算是以us ...

如果是1us为单位的话,就分的太细了。
我再次分析了一下上传的代码,的确是3.5个t,而配合实现的定时为50us作为最小时间粒度

具体你可以看看以下代码
如果波特率超过19200的话,使用固定的时间间隔 1750us,以50us为最小计数单位的话,定时的时间单位为35。
您看看是不是没有问题
  1. eMBErrorCode
  2. eMBRTUInit( UCHAR ucSlaveAddress, UCHAR ucPort, ULONG ulBaudRate, eMBParity eParity )
  3. {
  4.     eMBErrorCode    eStatus = MB_ENOERR;
  5.     ULONG           usTimerT35_50us;

  6.     ( void )ucSlaveAddress;
  7.     ENTER_CRITICAL_SECTION();

  8.     /* Modbus RTU uses 8 Databits. */
  9.     if( xMBPortSerialInit( ucPort, ulBaudRate, 8, eParity ) != TRUE )
  10.     {
  11.         eStatus = MB_EPORTERR;
  12.     }
  13.     else
  14.     {
  15.         /* If baudrate > 19200 then we should use the fixed timer values
  16.          * t35 = 1750us. Otherwise t35 must be 3.5 times the character time.
  17.          */
  18.         if( ulBaudRate > 19200 )
  19.         {
  20.             usTimerT35_50us = 35;       /* 1750us. */
  21.         }
  22.         else
  23.         {
  24.             /* The timer reload value for a character is given by:
  25.              *
  26.              * ChTimeValue = Ticks_per_1s / ( Baudrate / 11 )
  27.              *             = 11 * Ticks_per_1s / Baudrate
  28.              *             = 220000 / Baudrate
  29.              * The reload for t3.5 is 1.5 times this value and similary
  30.              * for t3.5.
  31.              */
  32.             usTimerT35_50us = ( 7UL * 220000UL ) / ( 2UL * ulBaudRate );
  33.         }
  34.         
  35.         if( xMBPortTimersInit( ( USHORT ) usTimerT35_50us ) != TRUE )
  36.         {
  37.             eStatus = MB_EPORTERR;
  38.         }
  39.     }
  40.     EXIT_CRITICAL_SECTION(  );

  41.     return eStatus;
  42. }
复制代码

出0入0汤圆

发表于 2014-7-31 17:46:11 | 显示全部楼层
xukai871105 发表于 2014-7-28 08:35
如果是1us为单位的话,就分的太细了。
我再次分析了一下上传的代码,的确是3.5个t,而配合实现的定时为50 ...

感谢回答  大于19200是个常量确实是这样的。
当小于19200的时候,我说的是这里。而不是大于19200的

出0入0汤圆

发表于 2014-8-5 14:29:32 | 显示全部楼层
xukai871105 发表于 2013-4-1 09:30
PA9和PA10为 STM32F系列的USART的接收和发送口

PD10为RS485形式的发送或接收控制口,该端口可以使用任意 ...

楼猪,本菜鸟刚刚接触学习还没入门,请教下如果我的485电路是自动收发的,不需要管教控制可以吗??还是我的485电路是一定要有一个管教来控制收发的

出0入0汤圆

 楼主| 发表于 2014-8-5 16:36:56 | 显示全部楼层
小白菜000 发表于 2014-8-5 14:29
楼猪,本菜鸟刚刚接触学习还没入门,请教下如果我的485电路是自动收发的,不需要管教控制可以吗??还是 ...

如果是自动收发的话,建议看看电路,确定自动收发的原理。

485发送,就怕丢失最后一个字节!

出0入0汤圆

发表于 2014-8-5 16:42:19 | 显示全部楼层
xukai871105 发表于 2014-8-5 16:36
如果是自动收发的话,建议看看电路,确定自动收发的原理。

485发送,就怕丢失最后一个字节! ...

你的意思是如果485电路自动收发可以正常工作的话,就不用再多个控制脚控制收发了是吗????

你说的“”485发送,就怕丢失最后一个字节!“”是在modbus协议下发送容易有这个问题吗?????     因为自动收发485电路已经算成熟有产品量产用了,

出5入42汤圆

发表于 2014-8-5 16:51:44 | 显示全部楼层
今天需要用,再来看看帖子。

出0入0汤圆

发表于 2014-8-6 11:02:00 | 显示全部楼层
谢谢楼主的分享啊

出0入0汤圆

 楼主| 发表于 2014-8-6 16:20:12 | 显示全部楼层
小白菜000 发表于 2014-8-5 16:42
你的意思是如果485电路自动收发可以正常工作的话,就不用再多个控制脚控制收发了是吗????

你说的“ ...

modbus协议可使用在RS232和RS485和网络中,我说的丢失最后一个字节,完全是因为软件操作不当产生的,不是modbus的问题也不是freemodbus的问题,而你是具体的MCU和freemodbus结合的问题。

出0入0汤圆

发表于 2014-8-7 08:54:01 | 显示全部楼层
谢谢楼主的分享啊!

出0入0汤圆

发表于 2014-8-9 22:51:41 | 显示全部楼层
楼主 最新修改的代码在哪里下载? 谢谢

出0入0汤圆

 楼主| 发表于 2014-8-10 17:59:36 | 显示全部楼层
305546594 发表于 2014-8-9 22:51
楼主 最新修改的代码在哪里下载? 谢谢

你在这里找找吧
http://blog.csdn.net/xukai871105

出0入0汤圆

发表于 2014-8-27 15:45:26 | 显示全部楼层
给楼主点赞!

出0入0汤圆

发表于 2014-9-3 15:49:18 | 显示全部楼层
xukai871105 发表于 2012-8-12 20:00
五 定时器相关部分代码编写
        定时器的作用前面已经说明了,在这里就罗列一下相关的移植代码。定时器 ...

能不能提供下源码下载。

出0入0汤圆

发表于 2014-9-3 17:14:12 | 显示全部楼层
留名支持

出0入0汤圆

 楼主| 发表于 2014-9-3 19:49:34 | 显示全部楼层
Ackarlix 发表于 2014-9-3 15:49
能不能提供下源码下载。

就在下面的几个帖子中,不过IAR的版本比较老了!

出0入0汤圆

发表于 2014-9-5 16:37:15 | 显示全部楼层
刚好要用到modbus的从机协议,拜读lz的源码,受用很大,谢谢!

出0入0汤圆

发表于 2014-9-7 13:21:39 | 显示全部楼层
有水平的帖子,看着有点蒙……

出0入0汤圆

发表于 2014-9-13 21:43:06 | 显示全部楼层
modbus-stm32 收藏

出0入0汤圆

发表于 2014-9-13 22:04:03 | 显示全部楼层
长期潜水员,躺枪了,努力发帖升级

出0入0汤圆

发表于 2014-9-13 22:13:04 | 显示全部楼层
mark         

出0入0汤圆

发表于 2014-9-13 22:22:02 | 显示全部楼层
好东西,标记一下。

出0入0汤圆

发表于 2014-9-13 22:27:51 | 显示全部楼层
谢谢分享                                                  

出0入0汤圆

发表于 2014-9-16 16:34:10 | 显示全部楼层
正在了解中,mark

出0入0汤圆

发表于 2014-9-22 10:21:47 | 显示全部楼层
你好!请教前辈一个问题,这两天用Modbus poll 通过485转以太网交换机模块(三旺的牌子)测试发现几乎有50%的错误,不用模块直接用USB转485跑半天一个错没有,也通过手册调整了模块的帧长,和字符间隔(ms),但效果甚微。

出0入0汤圆

发表于 2014-9-22 11:04:58 | 显示全部楼层
mark!!modbus协议。

出0入0汤圆

发表于 2014-9-24 14:21:47 | 显示全部楼层
mark mark mark

出0入0汤圆

发表于 2014-10-9 13:39:00 | 显示全部楼层
lZ很棒!受益良多!

出0入0汤圆

发表于 2014-10-9 14:07:02 | 显示全部楼层
楼猪好人 mark

出0入0汤圆

发表于 2014-10-11 14:45:27 | 显示全部楼层
重温一下。就快用到了

出0入0汤圆

发表于 2014-10-20 17:54:57 | 显示全部楼层
帮顶,最近正在弄这一块

出0入0汤圆

发表于 2014-10-20 19:03:37 | 显示全部楼层
学习了 不错 很好的资料

出0入0汤圆

发表于 2014-10-20 21:59:04 | 显示全部楼层
FreeModbus的源码,有点复杂。

出0入0汤圆

 楼主| 发表于 2014-10-22 09:01:14 | 显示全部楼层

您是不是打错字了

出0入0汤圆

发表于 2014-10-24 20:27:08 | 显示全部楼层
bli19 发表于 2014-2-22 12:07
这似乎是能用can bus,不过不知道支不支持无线数据传输。。

支持无线。我用蓝牙试了试

出0入0汤圆

发表于 2014-10-24 22:34:13 | 显示全部楼层
收藏备用   

出0入0汤圆

发表于 2014-10-25 19:54:40 | 显示全部楼层
学习中。。。。。。

出0入0汤圆

发表于 2014-10-25 21:10:07 | 显示全部楼层
相当呢酷啊

出0入0汤圆

发表于 2014-10-27 11:38:21 | 显示全部楼层
本帖最后由 fiaanull 于 2014-10-27 11:39 编辑

楼主,有没有在uc上跑的modbus啊?我正缺一个啊

出0入0汤圆

发表于 2014-10-27 12:35:40 | 显示全部楼层
这个帖子太精彩了

出0入0汤圆

发表于 2014-10-27 12:55:51 来自手机 | 显示全部楼层
好好资料,谢谢共享

出0入0汤圆

发表于 2014-10-27 14:20:34 | 显示全部楼层
标记,MOD BUS 听说过,一直没机会深入学习,这个帖子提供了一个学习的契机

出0入0汤圆

发表于 2014-11-10 16:06:56 | 显示全部楼层
好东西。。。。。

出0入0汤圆

发表于 2014-11-10 16:51:06 | 显示全部楼层
很好的文章,用过公司的Modbus程序,感觉不够完善,接下来准备好好学习学习freemodbus

出0入0汤圆

发表于 2014-11-10 20:48:52 | 显示全部楼层
本帖最后由 shouzhou 于 2014-11-10 22:57 编辑

请问下 这个从机地址变为0x02
或者别的值的时候 为什么通讯不上呢?
补充说明下:485上接了两个设备,我用拨码开关设置一个设备为0x01 另一个为0x02
然后主函数中调用:
eMBInit(MB_RTU, SetSlaveAddress, 0x01, 9600, MB_PAR_EVEN);  //SetSlaveAddress 是读出的拨码开关的值
然后通讯中发现 0x01 从机可以通讯;但是 0x02号从机通讯存在问题 是不是除了eMBInit函数外 还需要调用别的函数?
自己研究了下 看到还有函数eMBErrorCode eMBSetSlaveID( UCHAR ucSlaveID, BOOL xIsRunning,UCHAR const *pucAdditional, USHORT usAdditionalLen ) 请问这个函数与从机地址有关吗?

出0入0汤圆

发表于 2014-11-10 23:17:38 | 显示全部楼层
过几天就要用到MODBUS,真好参考楼主的

出0入0汤圆

 楼主| 发表于 2014-11-11 10:21:36 | 显示全部楼层
shouzhou 发表于 2014-11-10 20:48
请问下 这个从机地址变为0x02
或者别的值的时候 为什么通讯不上呢?
补充说明下:485上接了两个设备,我用 ...

是不是要断点重启一下才可以!

出0入0汤圆

发表于 2014-11-11 10:57:38 | 显示全部楼层
真是很感动啊,楼主还在为维护这个帖子,请问下,楼主还用过挂多个从机的情况,我单个设备(从机地址01)使用是正常的,我比较纠结的是
eMBErrorCode eMBSetSlaveID( UCHAR ucSlaveID, BOOL xIsRunning,UCHAR const *pucAdditional, USHORT usAdditionalLen ) 这个函数在挂多个从机时是否有用,网络查询得到的结论是:“ucSlaveID 是 设置从设备ID,ID不同于从地址,同一网络内可以有相同的ID但是不能有相同的从地址”,这个没有实际接触过,不太了解这个有啥用途 ,现在挂两个从机通讯出现问题,所以来咨询下,这个函数如果不用 对于多从机通讯是否有影响。想直接借用下前人的经验了,如果没有影响,我就可以肯定是自己的别的地方出现问题了。拜谢。

出0入0汤圆

 楼主| 发表于 2014-11-11 10:59:56 | 显示全部楼层
shouzhou 发表于 2014-11-11 10:57
真是很感动啊,楼主还在为维护这个帖子,请问下,楼主还用过挂多个从机的情况,我单个设备(从机地址01)使用 ...

多个从机肯定是可以的,我最多做过差不多20个。从机地址从01开始排列,02、03等等
但是不能有重复的地址,不然通信会混乱!

出0入0汤圆

发表于 2014-11-11 11:16:31 | 显示全部楼层
楼主真是个认真做事的人,帖子一直在恢复,佩服,值得学习。

出0入0汤圆

发表于 2014-11-11 11:17:27 | 显示全部楼层
xukai871105 发表于 2014-11-11 10:59
多个从机肯定是可以的,我最多做过差不多20个。从机地址从01开始排列,02、03等等
但是不能有重复的地址 ...

多个从机时,函数 eMBSetSlaveID 用到了吗?

出0入0汤圆

 楼主| 发表于 2014-11-11 11:19:42 | 显示全部楼层
shouzhou 发表于 2014-11-11 11:17
多个从机时,函数 eMBSetSlaveID 用到了吗?

上电时通过 eMBInit 设置,从机地址通过 拨码开关读取,换句话说只有在断电的过程中设置拨码开关才有用!

出0入0汤圆

发表于 2014-11-11 11:24:26 | 显示全部楼层
恩 ,我也是这么设置的 ,拨码开关 0x01 0x02 。。。。。。,但是断电后重启还是有问题 但是有底气了 我再仔细查看别的地方 ,谢谢!

出0入0汤圆

发表于 2014-11-11 11:34:03 | 显示全部楼层
大赞!!!

出0入0汤圆

发表于 2014-11-24 10:00:22 | 显示全部楼层
感谢分享 mark

出0入0汤圆

发表于 2014-11-24 11:00:30 | 显示全部楼层
学习了

出0入0汤圆

发表于 2014-11-24 16:00:45 | 显示全部楼层
马克与刘明。

出0入0汤圆

发表于 2014-11-24 22:03:40 | 显示全部楼层
mark later can use

出0入0汤圆

发表于 2014-11-24 22:06:09 | 显示全部楼层
非常感谢楼主,我的MODBUS也跑起来了。

出0入0汤圆

发表于 2014-11-28 09:14:42 | 显示全部楼层
MARK标记,已经在用freemodbus了

出0入0汤圆

发表于 2014-11-28 14:34:34 | 显示全部楼层
感谢分享,这么有美德的人不多了

出0入0汤圆

发表于 2014-11-28 19:13:02 | 显示全部楼层
FreeModbus 真详细。

出0入0汤圆

发表于 2014-11-28 21:32:05 | 显示全部楼层
好东西。。谢谢楼主分享

出0入0汤圆

发表于 2014-11-28 23:25:40 | 显示全部楼层
哈!正在做的东西需要modbus支持,研究研究

出0入0汤圆

发表于 2014-12-5 16:43:24 | 显示全部楼层
鹿主 技术碉堡了 想你学习
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 10:53

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表