OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

楼主: 八度空间

FreeModbus在STM32上移植

  [复制链接]

  离线 

3

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2017-7-29
在线时间
18 小时
发表于 2017-7-29 11:11:40 | 显示全部楼层
回复 支持 反对

使用道具 举报

  离线 

115

主题

7581

帖子

12

精华

资深版主

Rank: 8Rank: 8

积分
11086
金钱
11086
注册时间
2013-9-10
在线时间
355 小时
 楼主| 发表于 2017-8-1 09:16:40 | 显示全部楼层
persevere 发表于 2017-7-29 10:58
@shiqinghai   大兄弟阿,这玩意怎么测试的,你电脑发送这个0A 04 00 01 00 01 61 71怎么来的??
刚接 ...

度娘一下modbus协议你就知道怎么回事了
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

  离线 

3

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2017-7-4
在线时间
16 小时
发表于 2017-8-8 15:19:16 | 显示全部楼层
起舞弄清影 发表于 2016-10-8 21:26
我用的探索板,定时器的代码我也改过了,F407的话定时器溢出时间计算方法是:Tout=((arr+1)*(psc+1))/Ft, ...

我用的F1-IAR,正在移植。定时器这儿我推了一下,协议中BaudRate>19200则选固定值1750US,F1也是按照Tout=((arr+1)*(psc+1))/Ft计算的程序中的赋值:
  if( ulBaudRate > 19200 )
        {
            usTimerT35_50us = 35;       /* 1800us. *///T3.5
        }

如果按照以上计算方法计算 usTimerT35_50us应该取34.定时器定时1750us。


回复 支持 反对

使用道具 举报

  离线 

81

主题

1003

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1858
金钱
1858
注册时间
2014-9-10
在线时间
206 小时
发表于 2017-8-10 11:06:17 | 显示全部楼层
本帖最后由 jiutianshenjian 于 2017-8-10 16:00 编辑

八度大神,你好。我用的stm32f103ZE
之前用USART1已经完成了Modbus从机的移植,接口为232和pc通信,产品已使用两年。
现在我拿到的原理图加了485和pc通信。同样的协议,保证之前232通信的基础上,通过这几个实现485通信:
PC10-RS485-TX:UART4_TX
PC11-RS485-RX:UART4_RX
PC12-RS485-EN:转换收发态

我在Modbus里面添加UART4初始化等,有USART1的地方都添加了UART4,但是usart1已经无法正常使用。
而我至少先得保证USART1仍可以正常工作。注释掉UART4的NVIC初始化部分USART1是能正常使用的。
同时我也不清楚这种方案可行否,Modbus能否同时支持两个串口呢?

我的中断函数如下,定义了一个全局变量来区分是收到1还是4发来的命令,以便回复时通过1还是4发送:
void  USART1_IRQHandler(void)
{
        OSIntEnter(); /* 进入系统临界区 */
        
    //接收中断        
        if (USART_GetITStatus(USART1, USART_IT_RXNE) == SET) /* 接收中断 */
        {               
                USART_ClearITPendingBit(USART1, USART_IT_RXNE); /* 清除读数据寄存器非空中断标志位 */
                g_usartRev = 1;
                prvvUARTRxISR();//调用 xMBRTUReceiveFSM
        }

    //发送中断         
        if (USART_GetITStatus(USART1, USART_IT_TXE) == SET) /* 发送中断 */
        {        
                USART_ClearITPendingBit(USART1, USART_IT_TXE); /* 清除写数据寄存器完成中断标志位 */
               
                prvvUARTTxReadyISR(); /* 调用 prvvUARTTxReadyISR() */
        }

        OSIntExit(); /* 退出系统临界区 */                                         
}


void  UART4_IRQHandler(void)
{
        OSIntEnter(); /* 进入系统临界区 */
        
    //接收中断        
        if (USART_GetITStatus(UART4, USART_IT_RXNE) == SET) /* 接收中断 */
        {               
                USART_ClearITPendingBit(UART4, USART_IT_RXNE); /* 清除读数据寄存器非空中断标志位 */
                g_usartRev = 4;
                prvvUARTRxISR();//调用 xMBRTUReceiveFSM
        }

    //发送中断            
        if (USART_GetITStatus(UART4, USART_IT_TXE) == SET) /* 发送中断 */
        {        
                USART_ClearITPendingBit(UART4, USART_IT_TXE); /* 清除写数据寄存器完成中断标志位 */
               
                prvvUARTTxReadyISR(); /* 调用 prvvUARTTxReadyISR() */
        }
        
        OSIntExit(); /* 退出系统临界区 */                        
}



小小蜗牛
回复 支持 反对

使用道具 举报

  离线 

81

主题

1003

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1858
金钱
1858
注册时间
2014-9-10
在线时间
206 小时
发表于 2017-8-10 11:24:22 | 显示全部楼层
正点原子公众号
偶然发现,注册时间刚好差了一年整。
小小蜗牛
回复 支持 反对

使用道具 举报

  离线 

3

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2017-7-4
在线时间
16 小时
发表于 2017-8-10 13:37:00 | 显示全部楼层
起舞弄清影 发表于 2016-10-10 16:43
1.现在已经可以达到你的效果了,我是将偶校验改为无校验,他就成功了,但是对于原因还是没搞明白我之前串 ...

您好,请问你这个问题是怎么解决的呢?我也遇到这个问题了,而且是前两位数据都是错误的。起始地址0x0000、0x0001都试过了 ,都有错误。
debug.png
回复 支持 反对

使用道具 举报

  离线 

4

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2017-8-11
在线时间
19 小时
发表于 2017-8-11 16:04:58 | 显示全部楼层
本帖最后由 笨鸟想飞 于 2017-8-11 16:06 编辑

我在F103ZE战舰版进行移植,用Modbus Poll测试
发现一直回复同样的0A 83 02 B1 33
000000-Tx:0A 03 00 00 00 0A C4 B6
000001-Rx:0A 83 02 B1 33
000002-Tx:0A 03 00 00 00 0A C4 B6
000003-Rx:0A 83 02 B1 33
000004-Tx:0A 03 00 00 00 0A C4 B6
000005-Rx:0A 83 02 B1 33
000006-Tx:0A 03 00 00 00 0A C4 B6
000007-Rx:0A 83 02 B1 33
000008-Tx:0A 03 00 00 00 0A C4 B6
000009-Rx:0A 83 02 B1 33
000010-Tx:0A 03 00 00 00 0A C4 B6
000011-Rx:0A 83 02 B1 33
000012-Tx:0A 03 00 00 00 0A C4 B6
000013-Rx:0A 83 02 B1 33
000014-Tx:0A 03 00 00 00 0A C4 B6
000015-Rx:0A 83 02 B1 33
000016-Tx:0A 03 00 00 00 0A C4 B6
000017-Rx:0A 83 02 B1 33
000018-Tx:0A 03 00 00 00 0A C4 B6
000019-Rx:0A 83 02 B1 33

用的是楼主的程序进行更改的,改了串口配置


回复 支持 反对

使用道具 举报

  离线 

115

主题

7581

帖子

12

精华

资深版主

Rank: 8Rank: 8

积分
11086
金钱
11086
注册时间
2013-9-10
在线时间
355 小时
 楼主| 发表于 2017-8-16 20:24:31 | 显示全部楼层
jiutianshenjian 发表于 2017-8-10 11:06
八度大神,你好。我用的stm32f103ZE
之前用USART1已经完成了Modbus从机的移植,接口为232和pc通信,产品已 ...

1、你要修改为两个串口的话,需要将协议里边的相关流程修改,不然没用的
2、没试过两个一起来的情况
3、你想过没,如果两个串口同时来数据的时候,你的modbus怎么处理?
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

  离线 

115

主题

7581

帖子

12

精华

资深版主

Rank: 8Rank: 8

积分
11086
金钱
11086
注册时间
2013-9-10
在线时间
355 小时
 楼主| 发表于 2017-8-16 20:25:43 | 显示全部楼层
百合向 发表于 2017-8-10 13:37
您好,请问你这个问题是怎么解决的呢?我也遇到这个问题了,而且是前两位数据都是错误的。起始地址0x0000 ...

两头的波特率要对上,串口配置什么的,你这第二个字节都不对了呀
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

  离线 

115

主题

7581

帖子

12

精华

资深版主

Rank: 8Rank: 8

积分
11086
金钱
11086
注册时间
2013-9-10
在线时间
355 小时
 楼主| 发表于 2017-8-16 20:29:40 | 显示全部楼层
笨鸟想飞 发表于 2017-8-11 16:04
我在F103ZE战舰版进行移植,用Modbus Poll测试
发现一直回复同样的0A 83 02 B1 33
000000-Tx:0A 03 00 0 ...

错误码是02,你看看modbus协议的错误帧是怎么回事,记得好像是寄存器地址不对,你在看看你的寄存器地址定义那里,是否符合协议的范围
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

  离线 

81

主题

1003

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1858
金钱
1858
注册时间
2014-9-10
在线时间
206 小时
发表于 2017-8-17 08:42:14 | 显示全部楼层
八度空间 发表于 2017-8-16 20:24
1、你要修改为两个串口的话,需要将协议里边的相关流程修改,不然没用的
2、没试过两个一起来的情况
3 ...

我现在实现了232串口1,485串口4.分别独立通信。
也就是同时只能一个在通信。
同时读取的话,还是挂掉。
小小蜗牛
回复 支持 反对

使用道具 举报

  离线 

115

主题

7581

帖子

12

精华

资深版主

Rank: 8Rank: 8

积分
11086
金钱
11086
注册时间
2013-9-10
在线时间
355 小时
 楼主| 发表于 2017-8-17 15:59:17 | 显示全部楼层
jiutianshenjian 发表于 2017-8-17 08:42
我现在实现了232串口1,485串口4.分别独立通信。
也就是同时只能一个在通信。
同时读取的话,还是挂掉 ...

1、独立通讯没问题的,可以使用DMA,这样CPU的占用了就比较少了,UART使用IDLE中断就可以实现接收了
2、实现了DMA,处理数据就可以分开来了,或者上RTOS,这样不同的任务处理不同的UART数据
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

  离线 

32

主题

170

帖子

0

精华

高级会员

Rank: 4

积分
809
金钱
809
注册时间
2015-11-9
在线时间
159 小时
发表于 2017-8-18 08:42:58 | 显示全部楼层
八度空间 发表于 2017-8-17 15:59
1、独立通讯没问题的,可以使用DMA,这样CPU的占用了就比较少了,UART使用IDLE中断就可以实现接收了
2、 ...

IDLE中断应该就一个字符传输时间吧,而modbus帧与帧的间隔时间是3.5t个字符时间,用IDLE是否合适?
回复 支持 反对

使用道具 举报

  离线 

3

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2017-7-4
在线时间
16 小时
发表于 2017-8-18 17:15:37 | 显示全部楼层
八度空间 发表于 2017-8-16 20:25
两头的波特率要对上,串口配置什么的,你这第二个字节都不对了呀

硬件配置就是改了一下引脚什么的,没多大变化,串口的话,波特率两边肯定是一样的,不然就没办法通信了,由于485不方便连PC,这里也改为了232.
回复 支持 反对

使用道具 举报

  离线 

115

主题

7581

帖子

12

精华

资深版主

Rank: 8Rank: 8

积分
11086
金钱
11086
注册时间
2013-9-10
在线时间
355 小时
 楼主| 发表于 2017-8-18 23:09:15 | 显示全部楼层
百合向 发表于 2017-8-18 17:15
硬件配置就是改了一下引脚什么的,没多大变化,串口的话,波特率两边肯定是一样的,不然就没办法通信了, ...

232先调试通过后再上485
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

  离线 

115

主题

7581

帖子

12

精华

资深版主

Rank: 8Rank: 8

积分
11086
金钱
11086
注册时间
2013-9-10
在线时间
355 小时
 楼主| 发表于 2017-8-18 23:09:49 | 显示全部楼层
shibinjie 发表于 2017-8-18 08:42
IDLE中断应该就一个字符传输时间吧,而modbus帧与帧的间隔时间是3.5t个字符时间,用IDLE是否合适?

还是仔细研究一下这个IDLE中断什么时候产生的,然后你就知道怎么用了
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

  离线 

32

主题

170

帖子

0

精华

高级会员

Rank: 4

积分
809
金钱
809
注册时间
2015-11-9
在线时间
159 小时
发表于 2017-8-21 08:55:50 | 显示全部楼层
八度空间 发表于 2017-8-18 23:09
还是仔细研究一下这个IDLE中断什么时候产生的,然后你就知道怎么用了

空闲中断不就是RXNE位置1后,在一个字节时间内(比如数据位为8时 ,是起始位+8+停止位)没有再接收到数据后就会产生空闲中断了么,而modbus认为一帧结束不应该是这个时间乘以3.5倍吗?
回复 支持 反对

使用道具 举报

  离线 

4

主题

82

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
393
金钱
393
注册时间
2017-2-11
在线时间
51 小时
发表于 2017-8-21 09:47:37 | 显示全部楼层
谢谢分享  欧巴
回复 支持 反对

使用道具 举报

  离线 

1

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2017-8-21
在线时间
15 小时
发表于 2017-8-21 11:25:07 | 显示全部楼层
真的很不错
回复 支持 反对

使用道具 举报

  离线 

115

主题

7581

帖子

12

精华

资深版主

Rank: 8Rank: 8

积分
11086
金钱
11086
注册时间
2013-9-10
在线时间
355 小时
 楼主| 发表于 2017-8-21 11:53:36 | 显示全部楼层
shibinjie 发表于 2017-8-21 08:55
空闲中断不就是RXNE位置1后,在一个字节时间内(比如数据位为8时 ,是起始位+8+停止位)没有再接收到数据 ...

再往下你就自己想了
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

  离线 

32

主题

170

帖子

0

精华

高级会员

Rank: 4

积分
809
金钱
809
注册时间
2015-11-9
在线时间
159 小时
发表于 2017-8-21 12:33:08 | 显示全部楼层
八度空间 发表于 2017-8-21 11:53
再往下你就自己想了

回复 支持 反对

使用道具 举报

  离线 

32

主题

170

帖子

0

精华

高级会员

Rank: 4

积分
809
金钱
809
注册时间
2015-11-9
在线时间
159 小时
发表于 2017-8-21 12:36:28 | 显示全部楼层
八度空间 发表于 2017-8-21 11:53
再往下你就自己想了

我看很多例子都是直接空闲中断后就认为一帧数据结束了,我认为这样是不合modbus协议,但是一般随便用用是可以的。
回复 支持 反对

使用道具 举报

  离线 

115

主题

7581

帖子

12

精华

资深版主

Rank: 8Rank: 8

积分
11086
金钱
11086
注册时间
2013-9-10
在线时间
355 小时
 楼主| 发表于 2017-8-21 21:23:02 | 显示全部楼层
shibinjie 发表于 2017-8-21 12:36
我看很多例子都是直接空闲中断后就认为一帧数据结束了,我认为这样是不合modbus协议,但是一般随便用用是 ...

现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

  离线 

0

主题

2

帖子

0

精华

新手入门

积分
36
金钱
36
注册时间
2017-7-23
在线时间
14 小时
发表于 2017-8-31 11:55:42 | 显示全部楼层
大神请问您定时器的时长是多少呀,就是xMBRTUTimerT35Expired的时长
回复 支持 反对

使用道具 举报

  离线 

115

主题

7581

帖子

12

精华

资深版主

Rank: 8Rank: 8

积分
11086
金钱
11086
注册时间
2013-9-10
在线时间
355 小时
 楼主| 发表于 2017-8-31 21:59:58 | 显示全部楼层
段传东 发表于 2017-8-31 11:55
大神请问您定时器的时长是多少呀,就是xMBRTUTimerT35Expired的时长

可以看参数来计算
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

  离线 

0

主题

5

帖子

0

精华

新手入门

积分
24
金钱
24
注册时间
2017-7-31
在线时间
3 小时
发表于 2017-11-2 16:27:32 | 显示全部楼层
mark。学习了
回复 支持 反对

使用道具 举报

  离线 

0

主题

1

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2017-11-5
在线时间
0 小时
发表于 2017-11-5 12:22:20 | 显示全部楼层
菜鸟来求教为什么历程编译会有这两个问题呢?

ST(J~{1F8WB)}GL{UHXD5CK.png
O1~3A7@MC7FEM5~4)R429$7.png
回复 支持 反对

使用道具 举报

  离线 

115

主题

7581

帖子

12

精华

资深版主

Rank: 8Rank: 8

积分
11086
金钱
11086
注册时间
2013-9-10
在线时间
355 小时
 楼主| 发表于 2017-11-5 18:35:07 | 显示全部楼层
你在看这七个字 发表于 2017-11-5 12:22
菜鸟来求教为什么历程编译会有这两个问题呢?

空间不够,下载找不到设备
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

  离线 

0

主题

9

帖子

0

精华

新手入门

积分
40
金钱
40
注册时间
2017-11-16
在线时间
6 小时
发表于 2017-11-16 16:53:57 | 显示全部楼层
太厉害了,膜拜大神!
回复 支持 反对

使用道具 举报

  离线 

24

主题

156

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
315
金钱
315
注册时间
2017-7-17
在线时间
146 小时
发表于 2017-11-16 19:33:30 | 显示全部楼层
好东西,顶一下。收藏,以后研究MODBUS参考。哈哈哈哈。感谢大神无私分享~
回复 支持 反对

使用道具 举报

  离线 

1

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2017-11-18
在线时间
11 小时
发表于 2017-11-18 08:27:11 | 显示全部楼层
谢谢!这是从机的代码吗?如果一个从机,下面还有若干个设备等待它轮询,那是不就既是从又是主机啦?
回复 支持 反对

使用道具 举报

  离线 

115

主题

7581

帖子

12

精华

资深版主

Rank: 8Rank: 8

积分
11086
金钱
11086
注册时间
2013-9-10
在线时间
355 小时
 楼主| 发表于 2017-11-18 19:37:05 | 显示全部楼层
Horseman 发表于 2017-11-18 08:27
谢谢!这是从机的代码吗?如果一个从机,下面还有若干个设备等待它轮询,那是不就既是从又是主机啦?

这个只是从机,不是主机
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

  离线 

24

主题

156

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
315
金钱
315
注册时间
2017-7-17
在线时间
146 小时
发表于 2017-11-19 16:32:11 | 显示全部楼层
你这是从哪个官方网站找到的库啊!?
回复 支持 反对

使用道具 举报

  离线 

115

主题

7581

帖子

12

精华

资深版主

Rank: 8Rank: 8

积分
11086
金钱
11086
注册时间
2013-9-10
在线时间
355 小时
 楼主| 发表于 2017-11-19 20:51:48 | 显示全部楼层
王建峰 发表于 2017-11-19 16:32
你这是从哪个官方网站找到的库啊!?

官网
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

  离线 

7

主题

196

帖子

0

精华

高级会员

Rank: 4

积分
582
金钱
582
注册时间
2017-8-17
在线时间
119 小时
发表于 2017-12-26 13:13:40 | 显示全部楼层
版主,你这程序写错了吧。这都能正常运行?

无标题.png
回复 支持 反对

使用道具 举报

  离线 

115

主题

7581

帖子

12

精华

资深版主

Rank: 8Rank: 8

积分
11086
金钱
11086
注册时间
2013-9-10
在线时间
355 小时
 楼主| 发表于 2017-12-26 14:46:10 | 显示全部楼层
2246606206 发表于 2017-12-26 13:13
版主,你这程序写错了吧。这都能正常运行?

你是说之间的空格么?
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

  离线 

5

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2017-5-16
在线时间
28 小时
发表于 2017-12-26 14:57:59 | 显示全部楼层
厉害......................
回复 支持 反对

使用道具 举报

  离线 

7

主题

196

帖子

0

精华

高级会员

Rank: 4

积分
582
金钱
582
注册时间
2017-8-17
在线时间
119 小时
发表于 2017-12-26 15:12:42 | 显示全部楼层
八度空间 发表于 2017-12-26 14:46
你是说之间的空格么?

还没看明白?本应该是USART_Mode 但是你写成了USART_Parity;本是工作模式配置你写成了奇偶校验配置
回复 支持 反对

使用道具 举报

  离线 

7

主题

196

帖子

0

精华

高级会员

Rank: 4

积分
582
金钱
582
注册时间
2017-8-17
在线时间
119 小时
发表于 2017-12-26 15:31:46 | 显示全部楼层
八度空间 发表于 2017-12-26 14:46
你是说之间的空格么?

帮解答下,我明明发送过去的是0地址,但是怎么是从1地址开始读取数据啊
回复 支持 反对

使用道具 举报

  离线 

115

主题

7581

帖子

12

精华

资深版主

Rank: 8Rank: 8

积分
11086
金钱
11086
注册时间
2013-9-10
在线时间
355 小时
 楼主| 发表于 2017-12-26 17:53:24 | 显示全部楼层
2246606206 发表于 2017-12-26 15:12
还没看明白?本应该是USART_Mode 但是你写成了USART_Parity;本是工作模式配置你写成了奇偶校验配置

这被你看出来了,厉害了,失误估计,你改过来就是了
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

  离线 

115

主题

7581

帖子

12

精华

资深版主

Rank: 8Rank: 8

积分
11086
金钱
11086
注册时间
2013-9-10
在线时间
355 小时
 楼主| 发表于 2017-12-26 17:53:54 | 显示全部楼层
2246606206 发表于 2017-12-26 15:31
帮解答下,我明明发送过去的是0地址,但是怎么是从1地址开始读取数据啊

用的是我的例程还是你从源码自己移植的?
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

  离线 

7

主题

196

帖子

0

精华

高级会员

Rank: 4

积分
582
金钱
582
注册时间
2017-8-17
在线时间
119 小时
发表于 2017-12-26 19:59:40 | 显示全部楼层
八度空间 发表于 2017-12-26 17:53
用的是我的例程还是你从源码自己移植的?

源码,已经解决了。就是地址++的问题,还是借鉴你的
回复 支持 反对

使用道具 举报

  离线 

115

主题

7581

帖子

12

精华

资深版主

Rank: 8Rank: 8

积分
11086
金钱
11086
注册时间
2013-9-10
在线时间
355 小时
 楼主| 发表于 2017-12-26 22:40:36 | 显示全部楼层
2246606206 发表于 2017-12-26 19:59
源码,已经解决了。就是地址++的问题,还是借鉴你的

恭喜恭喜
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

  离线 

7

主题

196

帖子

0

精华

高级会员

Rank: 4

积分
582
金钱
582
注册时间
2017-8-17
在线时间
119 小时
发表于 2017-12-26 23:11:28 | 显示全部楼层

有你们前人的积累我们后来者才上手更快
回复 支持 反对

使用道具 举报

  离线 

16

主题

182

帖子

0

精华

高级会员

Rank: 4

积分
749
金钱
749
注册时间
2017-5-30
在线时间
136 小时
发表于 2018-2-1 17:45:52 | 显示全部楼层
lennox522 发表于 2016-8-21 00:50
**** 作者被禁止或删除 内容自动屏蔽 ****

移植完毕后,看到您的回答,想知道您是怎么实现读离散寄存器的,没看到您的附件
回复 支持 反对

使用道具 举报

  离线 

0

主题

2

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2018-2-4
在线时间
1 小时
发表于 2018-2-7 15:05:56 | 显示全部楼层
mark,等待参考借鉴
回复 支持 反对

使用道具 举报

  离线 

3

主题

19

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2018-4-18
在线时间
13 小时
发表于 2018-4-18 21:13:08 | 显示全部楼层
yhx立夏 发表于 2016-4-20 11:39
可以用的,我错了。谢谢分享

我的也是没有接收,怎么弄的
回复 支持 反对

使用道具 举报

  离线 

16

主题

105

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2017
金钱
2017
注册时间
2015-4-18
在线时间
216 小时
发表于 2018-5-16 08:03:44 | 显示全部楼层
你这个用485通讯有时会出现死机吧
回复 支持 反对

使用道具 举报

  离线 

115

主题

7581

帖子

12

精华

资深版主

Rank: 8Rank: 8

积分
11086
金钱
11086
注册时间
2013-9-10
在线时间
355 小时
 楼主| 发表于 2018-5-17 22:36:48 | 显示全部楼层
752151619 发表于 2018-5-16 08:03
你这个用485通讯有时会出现死机吧

你测试死机了???
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

  离线 

16

主题

105

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2017
金钱
2017
注册时间
2015-4-18
在线时间
216 小时
发表于 2018-5-18 07:09:37 | 显示全部楼层
八度空间 发表于 2018-5-17 22:36
你测试死机了???

是的。我用232通讯很正常 换了485芯片 加了一个收发控制状态I/O口 ,结果是有时正常,有时会死机。有什么办法可解决啊。。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-5-28 03:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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