zoukankan      html  css  js  c++  java
  • Delphi 串口使用校验位

    平时都用的8N1的模式,这次使用了校验位,因此串口的初始化工作需要改变

    #ifdef RT_USING_UART2
    USART_InitStructure.USART_BaudRate = 9600;
    USART_InitStructure.USART_WordLength = USART_WordLength_9b;
    USART_InitStructure.USART_StopBits = USART_StopBits_2;
    USART_InitStructure.USART_Parity = USART_Parity_Even;
    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
    USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
    USART_ClockInitStructure.USART_Clock = USART_Clock_Disable;
    USART_ClockInitStructure.USART_CPOL = USART_CPOL_Low;
    USART_ClockInitStructure.USART_CPHA = USART_CPHA_2Edge;
    USART_ClockInitStructure.USART_LastBit = USART_LastBit_Disable;
    USART_Init(USART2, &USART_InitStructure);
    USART_ClockInit(USART2, &USART_ClockInitStructure);

    /* register uart2 */
    rt_hw_serial_register(&uart2_device, "uart2",
    RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX | RT_DEVICE_FLAG_STREAM,
    &uart2);

    /* Enable USART2 DMA Rx request */
    USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);
    #endif

    这里最重要的是

     
    1. USART_WordLength_9b  

    这个字段意思是字的长度,没有校验位的时候是8位,有了之后要加一位。因此,这不代表数据的长度……真坑

    还要多些网友的帮助,详见

    http://www.rt-thread.org/phpBB3/viewtopic.php?f=2&t=2960&p=16419#p16419

  • 相关阅读:
    javaBean实体包区分
    先后天八卦配太极图
    mysql表连接
    关于解决问题方法论的思考
    Python基础综合练习
    大数据概述
    编译原理
    词法分析
    组合数据类型练习
    词法分析器实验报告
  • 原文地址:https://www.cnblogs.com/zhangzhifeng/p/5477973.html
Copyright © 2011-2022 走看看