[STM32F1] W5500读写网络数据与MODBUS 读写控制命令冲突

[复制链接]
2422|1
 楼主| 电子过客 发表于 2016-7-12 17:00 | 显示全部楼层 |阅读模式
int main(void)
{



           systick_init(72);                                            /*初始化Systick工作时钟*/

           gpio_for_w5500_config();                         /*初始化MCU相关引脚*/

           reset_w5500();                                                    /*硬复位W5500*/

           set_w5500_mac();                    /*配置MAC地址*/

           set_w5500_ip();                     /*配置IP地址*/

           socket_buf_init(txsize, rxsize);    /*初始化8个Socket的发送接收缓存大小*/

           eMBInit(MB_RTU, 0x01, 0x01, 9600, MB_PAR_NONE); //初始化 RTU模式 从机地址为1 USART1 9600 无校验  
          eMBEnable(); //启动FreeModbus

      while(1)                            /*循环执行的函数*/

              {
                  do_tcp_client();                  /*读取网关的数据*/               
                   eMBPoll();                                                                                    
             }


}
以上是主程序,  STM32做客户端, 利用 W5500 读取网关的数据值,(传感器数据)函数do_tcp_client();
stm32 还移植了freemodbus , 用于接收 触摸屏(主机发送的数据)函数  eMBPoll();  主要是控制命令
仿真时候发现,如果w5500和 modbus 单独工作都正常, 在有 do_tcp_client();   函数时候modbus 不能实时响应, (发送多次命令才能响应一次)
个人认为,程序在执行 读取网络数据时候, 这是来了MODBUS命令 没有及时响应
但是 modbus 都是设置在中断发送和接收 按理不应该啊?
各位高手 指点下,怎么不冲突
在不移植操作系统的情况下?





neeringstu 发表于 2016-7-12 21:31 | 显示全部楼层
w5500是不是可以用ch395L替代?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

55

主题

210

帖子

2

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