【干货分享】基于RA-Eco-RA6M4开发板实现无线通信

描述

本文介绍了 RA-Eco-RA6M4-100PIN-V1.0 开发板结合 DA16200 无线WiFi模块实现网络通信、数据上传和远程控制 LED 的项目设计。包括 DA16200 模块介绍、工程创建、调试、代码测试等。

https://bbs.elecfans.com/jishu_2496874_1_1.html


 

前言

瑞萨 U159-DA16200MEVZ DA16200 PMOD 板为配备 PMOD 扩展功能的套件或 MCU 板添加Wi-Fi功能。
 

RA6M4

该板为板载 Wi-Fi 模块提供标准 PMOD Type 3A(扩展UART)连接。

US159-DA16200MEVZ 设有 Type 3A PMOD 连接器,并集成了基于 DA16200 SoC 的 DA16200MOD 模块。


一、硬件连接

Type-C 数据线接串口并供电;

J-Link 连接 SWD 调试接口;

DA16200 模块连接 PMOD1 接口;

RA6M4


 

二、工程创建

打开 e^2^ studio 软件;

依次点击 文件 - 新建 - 瑞萨 C/C++ 项目 - Renesas RA ;

依次进行工程命名,路径设置,FSP版本,目标开发板选择,Device 选择 R7FA6M4AF3CFP ,工具链选择 GNU ARM Embedded ,调试器选择 J-Link 或 E2 Lite (ARM) ;

完成工程创建后,编译工程,确保 0 报错,0 警告 ;


 

三、工程配置

由开发板 PMOD1 引脚定义可知,串口号为 UART5,因此进入 FSP 配置界面,打开 Pins 标签页,选中串口引脚 P501 和 P502 并分别配置为 TXD5 和 RXD5 ;

RA6M4

配置外部中断:板载按钮 SW1 对应的引脚 P410 为 IRQ 模式,并在 Stacks 标签下添加对应的堆栈,并配置属性参数;

RA6M4

配置定时器,Pins 标签下配置引脚 P214 为 AGTO5;添加低功耗定时器堆栈,进行参数配置;

RA6M4

配置完成后,点击 Generate Project Content 按钮,生成工程代码。


 

四、工程代码

1) 打开 src/hal_entry.c 文件,添加如下代码:

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

#include "hal_data.h"#include "dialog_wifi_demo.h"#include "common_utils.h"
FSP_CPP_HEADERvoid R_BSP_WarmStart(bsp_warm_start_event_t event);FSP_CPP_FOOTER
void hal_entry(void){    /* TODO: add your own code here */
    fsp_pack_version_t version = {RESET_VALUE};
    /* Version get API for FLEX pack information */    R_FSP_VersionGet(&version);
    /* Example Project information printed on the Console */    APP_PRINT(BANNER_1);    APP_PRINT(BANNER_2);    APP_PRINT(BANNER_3,EP_VERSION);    //APP_PRINT(BANNER_4,version.major, version.minor, version.patch);    APP_PRINT(BANNER_4);    APP_PRINT(BANNER_5);    APP_PRINT(BANNER_6);
    dialog_wifi_demo();#if BSP_TZ_SECURE_BUILD    /* Enter non-secure code */    R_BSP_NonSecureEnter();#endif}

2) 添加 Demo 例程中的 da16200_AT.c/h 文件至 src 文件夹,并修改 IP 地址

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

/* Set Country Code */    [ DA16200_AT_CMD_INDEX_AT_WFSAP] =    {        .p_cmd = (uint8_t *) "AT+WFSAP=Renesas_Wifi,3,1,12345678,1,CH\r\n",        .p_success_resp = (uint8_t *) "OK",        .max_resp_length = DA16200_STR_LEN_128,        .retry = DA16200_RETRY_VALUE_5,        .retry_delay = DA16200_DELAY_200MS    },/* Set IP */    [ DA16200_AT_CMD_INDEX_AT_NWIP] =    {        .p_cmd = (uint8_t *) "AT+NWIP=1,192.168.8.1,255.255.255.0,192.168.8.1\r\n",        .p_success_resp = (uint8_t *) "OK",        .max_resp_length = DA16200_STR_LEN_64,        .retry = DA16200_RETRY_VALUE_5,        .retry_delay = DA16200_DELAY_1000MS    },

3) 添加 Demo 例程中的 dialog_wifi_demo.c/h 文件至 src 文件夹,并修改 LED 引脚定义,注释 hs3001.h 相关代码

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

#ifndef DIALOG_WIFI_DEMO_H_#define DIALOG_WIFI_DEMO_H_#include "hal_data.h"//#include "hs3001.h"/* Definition */#define LED           BSP_IO_PORT_02_PIN_14#define BUTTON        BSP_IO_PORT_00_PIN_05
/* structure */typedef struct demo_data{    //hs3001_data_t hs3001_data;    uint16_t key_count;    uint8_t  led_blink_flag;    uint16_t led_blink_count;
} demo_data_t;
/* External variable */extern demo_data_t g_demo_data;/* Subroutine */void dialog_wifi_demo(void);
#endif /* DIALOG_WIFI_DEMO_H_ */

4) 添加 Demo 例程中的 http_server.c/h 文件至 src 文件夹,注释 hs3001.h 相关代码

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

#include "http_server.h"#include "da16200_AT.h"//#include "hs3001.h"#include "dialog_wifi_demo.h"#include #include 
void  http_update(uint8_t * http_ippt){    uint16_t len;    memset(user_buffer, 0 , 2048);    //hs3001_read(&g_demo_data.hs3001_data);    sprintf((char *)user_buffer,(char *)my_get_contents_updated,(uint16_t)25,(uint16_t)56,g_demo_data.key_count);
    len = (uint16_t)strlen((char *)user_buffer);    sprintf((char *)temp_buffer, "HTTP/1.1 200 \r\nContent-Length: %d\r\nContent-Type: text/html\r\n\r\n", len);
    http_server_send(http_ippt,temp_buffer, (uint16_t)strlen((char *)temp_buffer));    R_BSP_SoftwareDelay(50,BSP_DELAY_UNITS_MILLISECONDS);    http_server_send(http_ippt,user_buffer, len);    R_BSP_SoftwareDelay(200,BSP_DELAY_UNITS_MILLISECONDS);}

5) 添加 SEGGER_RTT 文件夹和 common_utils.h 文件至 src 文件夹。

6) 重新构建工程,确认无误后,调试并上传固件至开发板。


 

五、工程测试

1) 打开手机或电脑 WiFi ,扫描设备并连接 DA16200 模块对应的 HTTP 服务器

RA6M4


 

2) 浏览器输入网址 http://192.168.8.1/index.html 进入网页服务器页面

RA6M4

通过按钮可实现 LED 远程控制,并统计按钮 SW1 按下的次数。


 

六、总结

本文介绍了 RA-Eco-RA6M4-100PIN-V1.0 开发板结合 DA16200 无线WiFi模块实现网络通信、数据上传和远程控制 LED 的项目设计。包括 DA16200 模块介绍、工程创建、调试、代码测试等,为 Renesas 系列产品在物联网领域的开发设计和应用提供了参考。


 


 

RA6M4声明:本文由电子发烧友社区发布,转载请注明以上来源。如需平台(包括:试用+专栏+企业号+学院+技术直播+共建社区)合作及入群交流,请咨询18925255684(微信同号:elecfans123),谢谢!
 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分