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地址 

CH395 芯片出厂时已经烧录了由 IEEE 分配的 MAC 地址,MAC地址全球唯一.如非必要请勿设置 MAC 地址
一旦设置了MAC,则无法找回!
用户可以使用 CH395CMDGetMACAddr 获取其内部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里面包含接口函数头文件

原文地址:https://www.cnblogs.com/yangfengwu/p/14850537.html