OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5464|回复: 3

STM32 + ENC28J60 以太网问题

[复制链接]

4

主题

11

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2014-12-10
在线时间
0 小时
发表于 2014-12-10 16:06:21 | 显示全部楼层 |阅读模式
5金钱
 大家好,小弟最近的项目遇到了一个问题 , 还请大家多多指教 ,谢谢!
问题是这样的,以太网芯片是ENC28J60, 程序是在战舰板的例程基础上来修改的, 上位机会发送不同的指令到 STM32, 
STM32接收到以太网的命令后开始执行子程序, 但是子程序在运行过程中也要能实时接收从上位机通过以太网发过来的其他的命令, 比如像急停,复位等命令, 我反复研究了多日, 还是没能实现在以太网子程序里面再次接收以太网命令的功能,大家 可以提供下思路吗, 谢谢,不甚感激

最佳答案

查看完整内容[请看2#楼]

你就用tcp链接,然后实现数据通信,定义好数据格式(比如类似modbus协议),然后解析这部分数据即可实现各种控制。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-12-10 16:06:22 | 显示全部楼层
你就用tcp链接,然后实现数据通信,定义好数据格式(比如类似modbus协议),然后解析这部分数据即可实现各种控制。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

4

主题

11

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2014-12-10
在线时间
0 小时
 楼主| 发表于 2014-12-12 13:36:51 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
谢谢原子哥的解答, 现在控制是可以控制, 就是要在控制子程序里面再次接收以太网命令无法实现, 比如
if(tcp_server_tsta!=tcp_server_sta)//TCP Server×?????±?
{  

  if(tcp_server_sta&(1<<6))
{
if((tcp_server_databuf[0] == 0x02)  )
{
                                      。。。。。。
                                      。。。。。。
                                }
                          }
                }

要在中间的句号语句里面再次接收以太网命令, 这个应该是怎么弄呢
回复

使用道具 举报

21

主题

69

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2014-4-26
在线时间
2 小时
发表于 2014-12-12 17:34:02 | 显示全部楼层
我也做过相同的网口通信,不过我用的是UDP,起初也有你这样的想法,但是我测试了在程序中根本接收不到数据,
像你这么做是实现不了的,必需跳出这段程序再重新接受数据,因为STM32同一时刻只能执行一句,所以你想在处
理程序的同时还要检测是否接收到以太网命令是不行的,
如果想做的话加入中断试一下,中断来临就检测是否接收到数据,但是你执行的程序里不能有发送数据的程序。
如果不用中断,也可以试着把控制子程序的将进入条件记下来,然后执行一边跳出循环,在检测是否接收到数据,
如果未接收到,则还执行控制子程序,否则执行接收到的命令,
这只是我的想法,不知道可不可以。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 19:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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