【前言】
首先感谢富芮坤和面包板社区,提供的FR3068x-C开发板试用机会。
【FR3068x-C开发板简介】
首先来几张FR3068x-C开发板的靓照
FR3068E-C 开发板系统框图
开发板硬件资源
开发板硬件资源分配如图1-2所示:
FR3068E-C 开发板特性
蓝牙V5.3 协议
串口(PB4-RX、PB5-TX)、 J-Link调试接口(PB10-SWCLK、PB11-SWDIO),支持J-Link
V9
PCB天线
4个用户按键、1个复位按键
芯片支持2x16路PWM输出
芯片支持9路12位ADC
芯片支持3路I2C
芯片支持5路UART、支持流控功能
芯片支持2路SPI主接口,支持 QSPI, OSPI;2路SPI做从
芯片支持2路I2S
芯片支持8080-16bit、RGB、QSPI显示屏通信
芯片支持1路SD卡,支持SDIO3.0/eMMC 4.5.1
芯片支持USB OTG
芯片支持4路数字MIC
芯片支持1路SPDIF输入、1路SPDIF输出
支持CAN-FD
支持RS485
芯片支持RS232
芯片硬件加密支持AES-128, AES-192, AES-256
开发基于蓝牙共享上网+TCP开发智能家居控制终端
开发环境
Keil 5.3
Python 3.10
vscode
FRECHIP调试工具
项目目标
开发板通过手机蓝牙共享上网,基于TCP/IP 协议与PC、移动终端远程通信,控制开发板LED。
有了此基础框架可以移植MQTT, 连接远程服务器,接继电器、红外遥控等可以控制家里的家电。
开发准备
下载原厂的开发资料、SDK,
下载链接:
解压开发资料。
查看开发板原理图
D3,代码里用来代表熄屏状态的。
我这里用D4, 用TCP/IP 协议控制目标。
创建代码工程
使用富芮坤FR306x_SDK例程提取工具,提取SDK里lvgl示例代码,重命名工程名为smarthome,
首先编译一次,会有很多错误,原因是缺文件,再在SDK复制相对应文件到工程目录里,即可编译通过。
理清代码逻辑及业务功能
命令解析与LED控制:检查接收到的数据内容,如果匹配特定命令(如 "LED_ON" 或 "LED_OFF"),则执行相应的LED控制操作,并再次回传数据。
开始编写代码
首先在main.c里添加LED初始化函数
然后,在app_at.c里添加定义
编译工程
在keil点编译命令。
生成了project_burn.bin
烧录固件
使用FRECHIP调试工具
加载刚刚生成的project_burn.bin固件
连接开发板
打开串口,现打开烧录
按开发板的“RST”按键,开发板自动开始烧录,烧录完后,自动重启。
【测试】
开启蓝牙共享上网
首先用手机连接wifi, 打开WiFi热点和蓝牙共享上网,如图:
手机连接开发板蓝牙,如图所示:
按开发板的K3键,下翻到上网测试,按K2键,打开PAN连接。
电脑打开调试工具,我用的是LLCOM, 创建TCP服务端。查看电脑IP。
建立TCP/IP连接
用FRECHIP调试工具,发送AT指令。
小插曲,原厂居然没AT指令说明档,说来也奇怪,有了代码,还没有功能说明,不是先有功能需求说明,才开发代码吗?
于是代码+注释写一个AT指令说明文档详情查看:https://mp.weixin.qq.com/s/8zK21nLxI3EIAezpDFPO9Q
发送AT指令:
AT#PD192_168_000_071_02333
开发板连接上电脑上的TCP服务端, 电脑就可以给开发板发送数据了
控制LED
发送指令LED_ON,可以控制LED亮;
发送指令LED_OFF,可以控制LED灭。
【后记】
时间冲忙,还有很多功能可以实现,比如用 NTP同步互联网时间,获取天气等信息.
未解决问题:
TCP数据回传,需原厂大神协助解决。