USART EVEN 串口偶校验
废话不多说,直接上代码。
//
USART_InitStruct.USART_BaudRate = 1200;
USART_InitStruct.USART_WordLength = USART_WordLength_9b;
USART_InitStruct.USART_StopBits = USART_StopBits_1;
USART_InitStruct.USART_Parity = USART_Parity_Even;
USART_InitStruct.USART_Mode = USART_Mode_Rx|USART_Mode_Tx;
USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_Init(USART2,&USART_InitStruct);
USART_ITConfig(USART2, USART_IT_IDLE , ENABLE);//¿ÕÏÐÖжÏ
USART_ITConfig(USART2, USART_IT_TC , ENABLE);//·¢ËÍÍê³ÉÖжÏ
USART_DMACmd(USART2, USART_DMAReq_Tx|USART_DMAReq_Rx, ENABLE);//Ö§³ÖDMA ·¢ËͺͽÓÊÕ
USART_Cmd(USART2, ENABLE);
上周驱动一个蠕动泵,串口接口。本以为分分钟就搞定了,但是因为一个偶校验折腾了一两个小时。主要是当时太粗心了,协议没认真看(PS:吐槽一下,那协议写得真烂)。认真回头又看了一遍协议,那校验方式改成偶校验之后,忘了加一个数据位。今天想起来,真不应该。写个博客,引以为戒。