当前位置: 首页 > news >正文

哈尔滨网站运营服务商昆明网站建设推广服务

哈尔滨网站运营服务商,昆明网站建设推广服务,wordpress前端购买,关于网站优化的文章STM32W5500以太网应用开发003_TCP服务器添加OLED#xff08;u8g2#xff09;显示状态 实验效果3-TCP服务器OLED1 拷贝显示驱动代码1.1 拷贝源代码1.2 将源代码添加到工程1.3 修改代码优化等级1.4 添加头文件路径1.5 修改STM32CubeMX工程 2 修改源代码2.1 添加头文件2.2 main函… STM32W5500以太网应用开发003_TCP服务器添加OLEDu8g2显示状态 实验效果3-TCP服务器OLED1 拷贝显示驱动代码1.1 拷贝源代码1.2 将源代码添加到工程1.3 修改代码优化等级1.4 添加头文件路径1.5 修改STM32CubeMX工程 2 修改源代码2.1 添加头文件2.2 main函数修改 3 实验测试效果 实验效果3-TCP服务器OLED 1 拷贝显示驱动代码 1.1 拷贝源代码 拷贝HARDWARE文件夹里面包括OLED.c/.h和移植好的U8g2csrc文件夹 1.2 将源代码添加到工程 将代码分别添加到工程的User/OLED组和User/U8G2组所有.c文件都添加 1.3 修改代码优化等级 这里添加的好多文件用不到需要把代码优化等级调整到Level 1 1.4 添加头文件路径 ..\HARDWARE\oled ..\HARDWARE\U8g2csrc1.5 修改STM32CubeMX工程 只需要添加3个控制引脚SPI和W5500是共用的 2 修改源代码 源代码全部在main.c里面修改 2.1 添加头文件 /* USER CODE BEGIN Includes */ #include string.h #include stdio.h #include w5500_spi.h #include wizchip_conf.h #include socket.h #include OLED.h #include u8g2_app.h /* USER CODE END Includes */2.2 main函数修改 局部变量 /* USER CODE BEGIN 1 */u8g2_t u8g2;char draw_buf[20]; /* USER CODE END 1 */显示初始化 /* USER CODE BEGIN 2 */OLED_RST_Set();//OLED初始化HAL_Delay(100);OLED_RST_Clr();HAL_Delay(200);OLED_RST_Set();OLED_Init();u8g2Init(u8g2);//U8G2初始化u8g2_FirstPage(u8g2);printf(A simple TCP Server Application using W5500!\r\n);W5500Init(); //W5500初始化ctlnetwork(CN_SET_NETINFO, (void*)gWIZNETINFO); //配置网络参数wiz_PhyConf phyconf;phyconf.by PHY_CONFBY_SW;phyconf.duplex PHY_DUPLEX_FULL;phyconf.speed PHY_SPEED_10;phyconf.mode PHY_MODE_AUTONEGO;ctlwizchip(CW_SET_PHYCONF, (void*)phyconf); //配置PHY参数draw_waitcable(u8g2);//OLED提示等待网线连接PHYStatusCheck(); //检查网络连接状态PrintPHYConf(); //打印PHY配置信息printf(Simple TCP Server Application\r\n);draw_waitclient(u8g2);//OLED提示等待客户端连接/* USER CODE END 2 */主循环 添加的代码部分有“OLED提示”注释 /* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */printf(\r\nInitializing server socket\r\n);//Parameters in order socket_id, protocol TCP or UDP, Port number, Flags0//Return value is socket ID on successif(socket(1,Sn_MR_TCP,LISTEN_PORT,0)!1)//创建一个socketSocket号TCP/UDP类型端口号{//errorprintf(Cannot create Socket!\r\n);while(1);//halt here}//successprintf(Socket Created Successfully ! \r\n);uint8_t socket_io_modeSOCK_IO_BLOCK;ctlsocket(1, CS_SET_IOMODE , socket_io_mode);//set blocking IO modeprintf(IP Address is %d.%d.%d.%d\r\n,gWIZNETINFO.ip[0],gWIZNETINFO.ip[1],gWIZNETINFO.ip[2],gWIZNETINFO.ip[3]);printf(Start listening on port %d ! \r\n,LISTEN_PORT);printf(Waiting for a client connection. \r\n);memset(draw_buf,0,20);snprintf(draw_buf,20,%d.%d.%d.%d:%d,gWIZNETINFO.ip[0],gWIZNETINFO.ip[1],gWIZNETINFO.ip[2],gWIZNETINFO.ip[3],LISTEN_PORT);draw_server(u8g2,draw_buf);//OLED提示等待客户端连接//Make it a passive socket (i.e. listen for connection)if(listen(1)!SOCK_OK)//监听端口{//our socket id is 1 (w5500 have 8 sockets from 0-7)//errorprintf(Cannot listen on port %d,LISTEN_PORT);while(1);}uint8_t sr0x00;//socket status registerdo{srgetSn_SR(1);//获取Sn_SR寄存器参数0~7 }while (sr!SOCK_ESTABLISHED sr!SOCK_CLOSED);if(srSOCK_CLOSED){printf(Some error occurred on server socket. Please restart.\r\n);while(1);}if(srSOCK_ESTABLISHED)//成功连接{//we come here only when a client has connected.//Now we can read data from the socketprintf(A client connected!\r\n);printf(Waiting for Client Data ...!\r\n);draw_conn_client(u8g2);//OLED提示客户端连接while(1){int lenrecv(1, receive_buff, RECEIVE_BUFF_SIZE);//从连接设备读取数据到receive_buffif(lenSOCKERR_SOCKSTATUS){//client has disconnectedprintf(Client has disconnected\r\n);printf(*** SESSION OVER ***\r\n\r\n);break;}receive_buff[len]\0;printf(Received %d bytes from client\r\n,len);printf(Data Received: %s, receive_buff);// memset(draw_buf,0,20); // snprintf(draw_buf,20,%d.%d.%d.%d:%d,gWIZNETINFO.ip[0],gWIZNETINFO.ip[1],gWIZNETINFO.ip[2],gWIZNETINFO.ip[3],LISTEN_PORT);draw_waitdata(u8g2,(char *)receive_buff);//OLED提示显示接收数据if(strcmp((char*)receive_buff,Who are u)0){//判断接收到Who are umemcpy(receive_buff,I am role_2099!,15);//修改应答内容len 15;}//Echo the data back encloused in a [] pairsend(1,(uint8_t*)[,1);//starting sq bracket 向客户端发送[send(1,receive_buff,len);// the data 向客户端发送接收到的内容或者特定的回答send(1,(uint8_t*)],1);//closing sq bracket 向客户端发送]printf(\r\nECHO sent back to client\r\n);//Look for quit message and quit if receivedif(strcmp((char*)receive_buff,QUIT)0){//收到QUIT端口客户端连接printf(Received QUIT command from client\r\n);printf(Disconnecting ... \r\n);printf(*** SESSION OVER ***\r\n\r\n);memset(draw_buf,0,20);snprintf(draw_buf,20,%d.%d.%d.%d:%d,gWIZNETINFO.ip[0],gWIZNETINFO.ip[1],gWIZNETINFO.ip[2],gWIZNETINFO.ip[3],LISTEN_PORT);draw_server(u8g2,draw_buf);//OLED提示等待客户端连接disconnect(1);//disconnect from the clinet 断开客户端连接break;//come out of while loop 退出回到131行重新等待客户端连接}}//While loop (as long as client is connected)}//if block, client connect success}/* USER CODE END 3 */3 实验测试效果
http://www.pierceye.com/news/35199/

相关文章:

  • 网站开发维护承担的法律责任优化大师windows
  • 学ps做兼职的网站有哪些ae免费素材网站
  • 青岛网站建设青岛博采网络织梦网站后台默认登陆路径
  • 人工智能ai写作网站免费河南制作网站公司
  • 婚庆网站开发工具杭州的设计网站大全
  • 沈阳网站优化培训云服务器做网站一般配置
  • 企业手机网站开通购物网站设计会员管理模块
  • 做网站服务器是什么赣州网
  • 建设网站的内容及实现方式网站建设哪家专业
  • 免费行情软件网站大全入口怎么做网站建设赚钱
  • 网站怎么做地图导航手机建设银行网站
  • 网站开发课程网站 建设阶段
  • 深圳网站公司网站制作互联网项目推广平台有哪些
  • 岳阳网站建设开发怎样建设公司网站
  • 直播网站基础建设微信 网站建设
  • 发布做任务网站制作个人网站的要求
  • 网站图片居中代码潜江市网站
  • 网站流行趋势书香校园网站建设
  • 安徽万振建设集团网站贵阳建设公司网站
  • 网站对位电商网站构建
  • 免费奖励的网站有哪些做淘宝网站的编程实例
  • 网站群 优点哪个网站可以做微信头图
  • 中国响应式网站建设建站工具cms
  • vs2008做html5网站网络推广文案有哪些
  • 网站建设项目经验网站关键词 公司
  • 顺德网站建设报价门户网站做
  • 安阳企业建网站荣昌集团网站建设
  • 哪个网站做恒指好丹东手机网站
  • 成都网站建设方案济源网站建设价格
  • 布吉做棋牌网站建设找哪家效益快WordPress渗透思路