STM32F407以太网通信
2016-05-26 本文已影响2074人
s7_200_smart
前两天公司买了正点原子的探索者STM32F4开发板,功能挺多的。
探索者STM32F4现阶段网络通信方面的程序用linux上C语言熟练一点,重点是可以参考的例程比较多,用windows开发一点信心也没有了。计算机不能通过网络直接执行单片机上面的命令,但可以自己编程定义命令,让单片机收到网络信息执行定义的动作。
现阶段只是进行最为简单的通信。单片机上共有四个按键KEY0,KEY1,KEY2,KEY_UP。两个可以控制的led灯,一黄一红。
现在单片机中下载的程序使用TCP通信,可以实现按键后发送代表键值的字符1[KEY0],2[KEY1],3[KEY2]到与之连接的客户端(远程计算机)上,远程计算机发送自己编程定义的命令使单片机控制led的开关。按KEY0后红灯取反,按KEY1后黄灯取反,按KEY2后两个灯取反。
现在客户端上的程序接收到代表键值字符,向服务器(单片机)发送自己定义的用于控制led的字符,并且计算出led的状态,打印出来。
现在一边用windows xp的keil 5往stm32f407开发板上烧写单片机的程序,一边用ubuntu写计算机程序,进行测试,出了问题时不时的用wireshark抓个包,调试一下程序。
老板提出的新需求:
1、电脑每秒读取100次单片机按键的状态(10ms一次);
2、电脑可以控制led灯的状态;
3、可能会有同时连接10个单片机的需求。
单片机与电脑通过TCP/IP协议通信,计算机是服务器端。
服务器端在固定的IP地址和端口监听,客户端连接网络后自动连接服务器,有客户端连接时服务器创建新的线程与之通信(是否需要分配新的端口?)。
上图服务器端口为9874,连接三个客户端后好像依然是只用一个端口通信。
更新日期:2016-05-26