找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1815|回复: 0
收起左侧

coremark Examples for STM32F769 serial MCUs

[复制链接]
ID:225095 发表于 2017-8-5 21:55 | 显示全部楼层 |阅读模式
Read me file
    Examples for STM32F769 serial MCUs.

Folders  

    coremark/  -coremark code  
    network/   -network code execute on PC  
    source/    -my source code  
    stm32f769disco/  -code for stm32f769i discovery kit  
    stm32f746zg/    project stm32f746zg nucleo  
  1. /**
  2. ******************************************************************************
  3. * @file
  4. * @author  wind
  5. * @version
  6. * @date
  7. * @brief
  8. ******************************************************************************
  9. */

  10. #include "my_socket_server.h"

  11. #define PORT 9999
  12. #define BACKLOG 5
  13. #define MAX_BUFF_SIZE   64
  14. char sendbuf[MAX_BUFF_SIZE];
  15. char recvbuf[MAX_BUFF_SIZE];

  16. void my_server_init(void)
  17. {
  18.     sys_thread_new("MY_SERVER", my_server_thread, NULL, DEFAULT_THREAD_STACKSIZE * 2, TCPIP_THREAD_PRIO);
  19. }

  20. void my_server_thread(void *arg)
  21. {
  22.     int listenfd,connectfd;
  23.     struct sockaddr_in server,client;
  24.     socklen_t addrlen;

  25.     if((listenfd = socket(AF_INET,SOCK_STREAM,0)) == -1)
  26.     {
  27.         return ;
  28.     }


  29.     int opt = SO_REUSEADDR;
  30.     setsockopt(listenfd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt));
  31.     memset(&server,0,sizeof(server));

  32.     server.sin_family = AF_INET;
  33.     server.sin_port = htons(PORT);
  34.     server.sin_addr.s_addr = htonl(INADDR_ANY);

  35.     if(bind(listenfd,(struct sockaddr *)&server,sizeof(server)) == -1)
  36.     {
  37.         return;
  38.     }
  39.     if(listen(listenfd,BACKLOG) == -1)
  40.     {
  41.         return;
  42.     }
  43.     addrlen = sizeof(client);



  44.     while(1)
  45.     {
  46.         LCD_UsrLog("Waiting for connect...\n");
  47.         connectfd = accept(listenfd,(struct sockaddr*)&client,&addrlen);

  48.         if(connectfd == -1)
  49.         {
  50.             continue;
  51.         }
  52.         LCD_UsrLog("A client is connected, ip: %s\tport:%d\n",inet_ntoa(client.sin_addr),htons(client.sin_port));


  53.         my_server_echo(connectfd);
  54.     }

  55.     close(listenfd);
  56. }

  57. void my_server_echo(int connfd)
  58. {
  59.     int rxsize;
  60.    
  61.     BSP_LED_On(LED1);
  62.     BSP_LED_Off(LED2);

  63.     while(1)
  64.     {
  65.         if((rxsize = read(connfd, recvbuf, MAX_BUFF_SIZE)) == -1)
  66.         {
  67.             continue;
  68.         }
  69.         else if(rxsize == 0)
  70.         {
  71.           break;
  72.         }
  73.         else
  74.         {
  75.                 if(recvbuf[0] == 'q')
  76.                       break;
  77.                   recvbuf[rxsize - 1] = '\0';
  78.                
  79.                 if(strncmp(recvbuf,LED1_ON,sizeof(LED1_ON)) == 0)
  80.                         BSP_LED_On(LED1);
  81.                 else if(strncmp(recvbuf,LED1_OFF,sizeof(LED1_OFF)) == 0)
  82.                         BSP_LED_Off(LED1);
  83.                 else if(strncmp(recvbuf,LED2_ON,sizeof(LED2_ON)) == 0)
  84.                         BSP_LED_On(LED2);
  85.                 else if(strncmp(recvbuf,LED2_OFF,sizeof(LED2_OFF)) == 0)
  86.                         BSP_LED_Off(LED2);

  87.                 LCD_UsrLog("%s\n",recvbuf);
  88.                 write(connfd, recvbuf, rxsize);
  89.         }
  90.         osDelay(10);
  91.     }

  92.     close(connfd);
  93. }
复制代码
全部资料下载地址:
stm32f7xx-master代码.7z (1.6 MB, 下载次数: 10)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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