1.打开RT-Thread Studio的SDK管理器,通过厂商过滤选择Renesas,添加我们此次的开发板到系统里。
2.按照群里给出的git地址,获取FSP配置包
将setup_fsp_v3_5_0_rasc_v2021-10.exe安装,释放到合适位置(后续的Studio中会用到该路径)。
3.选择文件/新建/RT-Thread项目,选择基于开发板,找到刚刚下载好的CPK-RA6M4新建项目工程
4.新建好工程以后,就可以给开发板添加各类软件包了,因为我没有官方推荐的RW007无线模块,所以这里我选择使用ESP8266来负责网络通讯,使用Studio配置起来非常简单,双击打开RT-Thread Settings项进入到软件包配置工具,点击添加软件包,搜索at_device,即可添加进来
5.右键选择配置项,进入具体配置页
如图勾选乐鑫ESP8266来添加ESP8266模块的驱动,下面按需求配置好WiFi名以及密码,我这里使用的串口0,设备端选择uart0,因为接收的数据会比较大,这里配置下缓存的数据长度为1024字节。
6.选择硬件标签页,找到芯片设备驱动,使能我们需要使用的串口0,RX的Buffer也适当调大一些。这里uart7默认是打开了的,这是给RTT的串口控制台使用的。
7.双击RA Smart Configurator ,第一次使用会提示你选择FSP所在的目录,打开并选择第2步里的路径即可。再次双击该项,即可打开DDSC Smart Configurator,可以看到uart7默认已经是配置好的了这里我们只需要新增NewStack增加一个串口即可,默认使用uart0,
在下面的具体配置参数里,有个callback的中断函数名,一定要和你选择的串口保持一样,否则编译的时候会报错
配置好以后,选择生成代码就可以把IO功能配置完成了。
8.我们这里使用的是P101和P100两个口做为串口通讯,按要求插上ESP8266模块
9.点击保存按钮,Studio会保存相关配置信息,并下载对应的软件包信息,点击编译
确认没有错误信息以后,点击下载把程序下载到板子上
10.因为Renesas的这块板载Jlink调试器并没有集成串口,所以这里我们需要单独找一个串口模块来连接单片机(注意单片机IO是3.3V,要注意你使用的串口模块IO电平是否合适),默认uart7的IO口使用的是P613和P614,我们连接上以后,打开一个串口终端,推荐使用Xshell,插上以后系统可能以及跑起来了,这时候按一下板上复位按钮,系统重启以后会重新打印上电信息。我们熟悉的RTlogo就出现了,并紧接着很快AT客户端(ESP8266模块)初始化和配置上网的信息就可以看到了。
红色的警告是说我使用的模块可能比较老,不支持这条指令,不过这里不影响我们使用,暂时可以不用理会。
测试下ifconfig和ping命令,都可以正常使用
这里我们就配置好了开发板的网络连接功能。
11.我们要获取网络平台上的信息,就需要像浏览器那样去使用http get方法或者是发送post请求,现在比较流行的方式是采用json格式的数据流传输,在嵌入式平台上恰好就有这么一个ujson的json格式解析实现。于是回到软件添加包的界面,我们陆续添加cJSON,WebClient两个软件包,在其各自的配置页面配置对应的功能实现即可,但是现在大多数的网站都已经采用HTTPS的方式进行访问,如果仅使用WebClient包是无法实现https格式的数据访问的,这里我们还需要添加mbedtls软件包以实现HTTPS访问,然后编译下试试看,嗯,还是报错,找找看原因,还缺少一个RTC组件,补上,时钟需要校准,于是找到一个netutils的工具包,实现NTP自动对时功能,至此我们配置好了从web上获取网页数据的所有软件包,保存并下载一下测试OK。
12.这里有一些疑惑,RTT里面的latest和版本最新的那个版本号(带数字那种)似乎并不是同一个版本,选择这里带数字的V2.2.0或者V2.1.2编译起来都会报错。选择lasest就不会出现这样的情况,TLS模式那里选择MbedTLS support。
要获取疫情数据,首先得选择一个数据平台,原本我是打算找支付宝的接口来使用的,后来在解决这里的MbedTLS通讯问题的时候,意外发现已经有前辈造好轮子了 。
,既然已经有人把轮子造好了,那果断还是要薅一下代码的。最起码接口省的我去找了呀,前辈使用的是STM32实现的,这里正好,我把它移植到RA6M4平台上来好了。
下面的事情就比较简单粗暴了,直接copy过来,稍微修改下,编译通过后下载到开发板,使用Web Client自带的web_get_test函数可以正常获取到数据:
但是使用获取疫情数据的函数get_NCOE_Data就会卡死机,经过排查,发现是串口缓存设置的有点小,把它改大一点就好了
13.数据终于是获取到了,后面打算弄一个TFT的彩屏,移植一下LVGL驱动,把数据展示在屏幕上,这样看起来更直观而且不需要像现在这样手动刷新获取,驱动移植一直还没有弄好,晚点有时间再更。
原作者:CubeLine