一. 基于雅特力437芯片开发版485串口代码相关教程

注:本文档的背景是先完成DJYOS入门使用教程中的《基于雅特力AT32F437芯片开发的家庭储能DTU教程入门》

1. 准备工作

1.1 usb转232中的232接口,其中杜邦线的接线是在下侧

1.2 下图中时437芯片板子的232接口,其中杜邦线接线是上侧

2. 使用教程

  • 有关串口的相关代码集中在dtu\src\app\YDT_1363_Protocol.c文件中;
  • 其中serial_transmission方法是初始化串口和判断串口输出读取结果的函数,COMWrite是用来往串口输出的函数,COMRead是用来往串口读取的函数

2.1 先声明一个全局变量的初始化串口句柄

   static int serial = -1; //串口句柄

2.2 开始配置要初始化板子上的哪个串口

char ucPORT = '\003';//选择初始化的485串口

char uart_name[20];

snprintf((char *)uart_name, 16, "/dev/UART%d", ucPORT);

2.3 通过open函数打开串口,并且判断这个串口是否能够正常使用

如果不能就要打印相关的错误,还有配置串口的相关功能和数据,如是否打开读写模式,防止串口成为进程的控制终端(图中的”O_RDWR | O_NOCTTY”)

if ((serial = open((char *)uart_name, O_RDWR | O_NOCTTY)) < 0) //串口是否正常打开判断

    {

      error_printf("YDS_1363", "open %s fail\r\n", uart_name);

      serial = -1;

      return bStatus;

        }

2.4 串口成功开启后还要继续配置波特率,数据位,停止位,校验位,最后也要判断是否配置成功

struct COMParam com; //配置串口信息

    com.BaudRate = CN_UART_BAUD_9600;//设置波特率

    com.DataBits = CN_UART_DATABITS_8;//数据位

    com.StopBits = CN_UART_STOPBITS_1;//停止位

    com.Parity = CN_UART_PARITY_NONE;//校验位

    bool_t comstate=fcntl(serial, CN_UART_COM_SET, &com);

    if (comstate!=false)

    {

      fcntl(serial, CN_UART_COM_SET, &com);

        }

2.5 如果初始化相应的串口不会关闭,之后还会用到那么就要外加代码限制再次初始化串口

if (serial==-1)

  {

    bool_t bStatus = false;

    char ucPORT = '\003';//选择初始化的485串口

    char uart_name[20];

    snprintf((char *)uart_name, 16, "/dev/UART%d", ucPORT);

    if ((serial = open((char *)uart_name, O_RDWR | O_NOCTTY)) < 0) //串口是否正常打开判断

    {

      error_printf("YDS_1363", "open %s fail\r\n", uart_name);

      serial = -1;

      return bStatus;

    }

    Handle_SetTimeOut(fd2Handle(serial),1000*1000);

    struct COMParam com; //配置串口信息

    com.BaudRate = CN_UART_BAUD_9600;//设置波特率

    com.DataBits = CN_UART_DATABITS_8;//数据位

    com.StopBits = CN_UART_STOPBITS_1;//停止位

    com.Parity = CN_UART_PARITY_NONE;//校验位

    bool_t comstate=fcntl(serial, CN_UART_COM_SET, &com);

     if (comstate!=false)

       {

      fcntl(serial, CN_UART_COM_SET, &com);

       }

  }

2.6 串口初始化,配置完成后,后续还有串口输出函数,以及串口接收函数

powered by GitbookFile Modify: 2024-03-04 14:13:25

results matching ""

    No results matching ""