模板: UART TO ETH for STM32 use

来自Waveshare Wiki
跳转至: 导航搜索

我们提供的例程是基于STM32F103RBT6的,提供的连接方式也是对应的STM32F103RBT6的引脚,如果有需要移植程序,请按实际引脚连接

硬件连接

STM32F103ZET连接引脚对应关系
ETH STM32
5V 5V
GND GND
RXD1 PC10
TXD1 PC11
CFG0 PC12
RST1 PD2

以我们的STM32F103RBT6为例,连接如下图:
2-CH UART TO ETH-STM32.png

软件说明

例程是基于HAL库进行开发的。 请在资料里面下载程序,找到STM32程序文件目录,打开STM32\Serial_Port_Parameter_Configuration\MDK-ARM
目录下的CH9121.uvprojx,即可看到程序。
CH9121 STM32 1.jpg

打开main.c,可以看到可由用户修改的程序,跟你自己的需求修改对应的参数,再重新编译下载即可。
(该函数主要是用来进行串口参数配置,如果使用上位机配置,则直接运行RX_TX文件里面的程序,可测试数据收发,是否会丢包等等)
CH9121 STM32 2.jpg
参数配置好后,将RX_TX文件夹里面的程序下载到STM32里。
下载成功后,运行SSCOM连接ETH模块,就可以给ETH发送数据啦,ETH会返回你发送给它的所有东西。
CH9121-Arduino-3.jpg

代码简析

  • 本程序只进行了简单的配置,如需配置其他功能可查阅串口控制命令,自行配置即可:
uint8_t CH9121_Mode           //模式选择
uint8_t CH9121_LOCAL_IP[4]    //本地IP
uint8_t CH9121_GATEWAY[4]     //网关
uint8_t CH9121_SUBNET_MASK[4] //子网掩码
uint8_t CH9121_TARGET_IP[4]   //目标IP
uint16_t CH9121_PORT1          //本地端口
uint16_t CH9121_TARGET_PORT    //目标端口
uint32_t CH9121_BAUD_RATE    //串口波特率
  • 根据串口控制命令合理利用下面函数可进行参数配置:
void CH9121_TX_4_bytes(UCHAR data, int command); //用于模式、是否随机端口、端口是否断开网络连接、是否清空串口数据、是否开启DHCP、是否开启串口2
void CH9121_TX_5_bytes(UWORD data, int command);//用于设置串口的端口号
void CH9121_TX_7_bytes(UCHAR data[], int command);//用于设置IP、子网掩码、网关
void CH9121_TX_BAUD(UDOUBLE data, int command);//用于设置串口的波特率
void CH9121_Eed(); //更新配置参数至 EEPROM、执行配置,复位 9121、离开配置模式