2-网络芯片CH395Q学习开发-学习资料说明,测试通信,获取硬件版本,获取设备本身MAC,代码移植说明
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/LearnCH395Q" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
资料说明
首先说明一下学习资料源码,在资料中有51单片机,stm32相关的例程.
用户可根据自己的情况选择使用.
说明
我提供的例程是作为具体的讲解使用.默认以SPI通信为主.
提供的代码是使用STM32F103单片机编写的.
测试下这节的程序
1.用户可以使用杜邦线根据自己的情况设置和连接引脚
2,注意!
要想模块使用SPI通信,模块的TX引脚需要在模块重启之前设置为低电平.
上面的引脚分配把模块的TX引脚接到了单片机的PA3上,也就是串口2的RX上,如果用户使用了串口2,请注意!
3.打开这节的程序
这一节测试使用SPI方式和模块进行通信,然后获取模块的芯片版本
4,我使用测试板进行测试
5,把程序下载到开发板,监控下单片机串口1打印的信息
注:也可能打印46..... 版本不一样
关于版本号
不同的版本号功能上有差异,版本号越高越好
50910E227 代表 版本2
50910E228 代表 版本4
推荐购买228或大于此数字的芯片.也就是4版本及其以上
版本功能主要差异:
假设使用芯片作为TCP服务器.
4版本及其以上的芯片支持多路TCP客户端连接其TCP服务器.
4版本以下的芯片只支持单路TCP客户端连接其TCP服务器
CH395Q获取可以通过 CMD_GET_GLOB_INT_STATUS 和 CMD_GET_GLOB_INT_STATUS_ALL 两个命令来获取中断状态,
前者只能获取到低 8 位的中断状态,后者可以获取全部的中断状态,使用时需要注意,任何版本的芯片都支持 CMD_GET_GLOB_INT_STATUS 命令,
如果芯片版本号大于等于 0X44 且使用了Socke4– Socke7 则只能用 CMD_GET_GLOB_INT_STATUS_ALL。
芯片版本号小于 0X44 不支持CMD_GET_GLOB_INT_STATUS_ALL 命令。
关于设备MAC地址
程序移植使用说明
1.把以下文件夹放到自己的工程
2.添加个分组,分组里面添加CH395SPI.C和CH395CMD.C文件; 包含头文件路径
3.根据自己的情况替换延时函数
4.如果用户使用的STM32F103系列的单片机的是硬件SPI,只需要修改这个地方即可
5.如果用户使用的其它型号的单片机,还需要替换后面程序
6.如果用户使用的其它型号的单片机,根据自己的情况修改引脚初始化
提示: SPI通信方式 CPOL=0, CPHA=1
CLK空闲状态为低电平,在第二个沿开始采集数据
7.如果用户使用的其它型号的单片机,根据自己的情况修改SPI函数
8.根据下面的步骤测试即可
9.关于文件
红框内的是通用文件,咱和模块通信调用的就是CH395CMD.C里面的函数
然后CH395CMD.C里面的函数再调用绿框里面的SPI接口文件和模组进行通信.
蓝框是代表不同的通信方式封装的文件,当前并没有用到.也并未编写完整并不能使用...
PARA : 并口
SPI_SW: 模拟SPI
UART: 串口
如果使用其它通信方式,修改完通信方式文件以后,记得在CH395CMD.C里面包含接口函数头文件