应用例程:以太网UDP消息的自由发送与接收(基于ESP8266模块)基本信息通过两块STM32F103RCT6核心板,演示如何通过UDP消息进行数据的发送与接收。核心板B采集电位器的数据,转换为电压后,通过UDP消息发送到核心板A,核心板A接收到数据后,将数据通过OLED屏显示出来。UDP消息通过ESP8266模块传递,核心板A驱动ESP8266模块A工作在AP模式(创建WIFI接入点),并监听指定端口的UDP报文。核心板B驱动ESP8266模块B工作在Station模式(加入现有的WIFI接入点),并向特定IP地址的指定端口发送UDP报文。因为使用其中一个ESP8266模块创建了WIFI接入点,因此不需要无线路由器。 视频下载暂无 实验硬件STM32F103RCT6核心板(2块)[ 购买 ]: CH340E通讯小板(2块)[ 购买 ]: Micro-USB通讯线(2根)[ 购买 ]: OLED屏SSD1306(1块)[ 购买 ]: 可调电位器模块(1块)[ 购买 ]: ESP8266通讯模块(2块)[ 购买 ]: 电路参考
关键配置说明为了简化,这里STM32F103xC核心板A与核心板B采用同一套硬件配置。 添加Tcp蓝图,在蓝图中添加TCP/IP通讯管理模块TcpIp、TCP/IP底层驱动ESP8266_TcpIpL、串口通讯底层USART2_AscL。 蓝图中选择USART2_AscL模块,在配置节点中选择Pin,确认单片机使用的管脚是:PA2、PA3。因为ESP8266模块默认的波特率时115200,速率比较高,这里建议打开DMA数据传输。 蓝图中选择Asc模块,在配置节点中选择Device,添加节点Device0,使用的串口底层实现为USART2_AscL。 蓝图中选择ESP8266_TcpIpL模块,在配置节点中选择LocalAddr,添加本地网卡LocalAddr0,使用的串口通讯设备为Device1。WIFI模式为AP,自己创建WIFI接入点,接入点名称是MCUBEE,接入点密码是12345678。TCP/IP模式为:作为服务器等待客户端连接。 蓝图中选择TcpIp模块,在配置节点LocalAddr中添加本地网卡LocalAddr0,使用的物理网卡为ESP8266_TcpIpL模块中的本地网卡LocalAddr0。 蓝图中选择TcpIp_Fe模块,在配置节点Port中,添加用户端口Port0。Port0会在TcpIp模块中的本地网卡LocalAddr0中自动创建一个网络连接TcpIp_Fe_Port0_Socket。 A/D转换器、OLED屏的配置可以参考以下两个例程: 应用程序梯形图(核心板A,接收并显示)NETWORK 0 用SM0.0保持以太网连接,并设置连接Port0的端口为3308
NETWORK 1 用SM0.0驱动UDP消息接收任务,一旦任务完成,下一个周期立即重新开启接收
NETWORK 2 当接收任务完成且没有错误时,统计总的报文和有效报文
液晶屏配置(核心板A,接收并显示)梯形图(核心板B,采集并发送)NETWORK 0 用SM0.0保持以太网连接,并设置连接Port0的端口为3308
NETWORK 1 获取AIW0的变化情况,保存到变量VW2
NETWORK 2 如果不在发送冷却时间内,且数据变化大于4,则更新VW0,并设置因为数据变化需要发送的请求M0.0
NETWORK 3 如果不在发送冷却时间内,且超过1秒没有发送过数据了,设置因为超时需要发送的请求M0.1
NETWORK 4 若有发送请求M0.0或者是M0.1,处理下数据然后启动发送任务
NETWORK 5 统计发送成功的次数
系统块配置(核心板B,采集并发送)在硬件配置中,ESP8266默认是工作在AP模式,因为核心板B需要驱动ESP8266工作在Staion模式,因此需要在系统块中修改ESP8266的工作模式。这里将WIFI模式设置为Station(加入WIFI接入点);TCP/IP模式设置为Client(客户端)。核心板A会在启动后建立建立一个WIFI接入点MCUBEE_XXXX,系统会根据MCU的硬件ID在MCUBEE后面加上下划线和4个数字。为了确认这4个数字,可以先让核心板A正常上电启动,然后用带无线网卡的笔记本搜索一下当前的可用WIFI接入点,确认名字后再填写到核心板B的系统快配置中。系统块配置必须在下载到核心板,重新上电后才能生效!
实验步骤
指令说明相关下载
|