完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,小弟最近的项目遇到了一个问题 , 还请大家多多指教 ,谢谢!
问题是这样的,以太网芯片是ENC28J60, 程序是在战舰板的例程基础上来修改的, 上位机会发送不同的指令到 STM32, STM32接收到以太网的命令后开始执行子程序, 但是子程序在运行过程中也要能实时接收从上位机通过以太网发过来的其他的命令, 比如像急停,复位等命令, 我反复研究了多日, 还是没能实现在以太网子程序里面再次接收以太网命令的功能,大家 可以提供下思路吗, 谢谢,不甚感激 |
|
相关推荐
3个回答
|
|
你就用tcp链接,然后实现数据通信,定义好数据格式(比如类似modbus协议),然后解析这部分数据即可实现各种控制。
|
|
|
|
谢谢原子哥的解答, 现在控制是可以控制, 就是要在控制子程序里面再次接收以太网命令无法实现, 比如
if(tcp_server_tsta!=tcp_server_sta)//TCP Server×?????±? { if(tcp_server_sta&(1<<6)) { if((tcp_server_databuf[0] == 0x02) ) { 。。。。。。 。。。。。。 } } } 要在中间的句号语句里面再次接收以太网命令, 这个应该是怎么弄呢 |
|
|
|
我也做过相同的网口通信,不过我用的是UDP,起初也有你这样的想法,但是我测试了在程序中根本接收不到数据,
像你这么做是实现不了的,必需跳出这段程序再重新接受数据,因为STM32同一时刻只能执行一句,所以你想在处 理程序的同时还要检测是否接收到以太网命令是不行的, 如果想做的话加入中断试一下,中断来临就检测是否接收到数据,但是你执行的程序里不能有发送数据的程序。 如果不用中断,也可以试着把控制子程序的将进入条件记下来,然后执行一边跳出循环,在检测是否接收到数据, 如果未接收到,则还执行控制子程序,否则执行接收到的命令, 这只是我的想法,不知道可不可以。 |
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2571 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2366 浏览 5 评论
3212 浏览 3 评论
2839 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2791 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
669浏览 1评论
906浏览 0评论
1027浏览 0评论
672浏览 0评论
500浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 19:54 , Processed in 0.868012 second(s), Total 50, Slave 44 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号