STM32串口9位數(shù)據(jù),無奇偶校驗(yàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
STM32和STM8的串口貌似都可以一次發(fā)送9位數(shù)據(jù),最近才注意到這個(gè),在此記錄。
一般不帶奇偶校驗(yàn)位的串口數(shù)據(jù):起始位(1)+數(shù)據(jù)位(8)+停止位(1)
帶奇偶校驗(yàn)位的串口數(shù)據(jù):起始位(1)+數(shù)據(jù)位(8)+校驗(yàn)位(1)+停止位(1)
如果數(shù)據(jù)位為9位,即:起始位(1)+數(shù)據(jù)位(9)+停止位(1)
9位數(shù)據(jù)STM8串口的配置:
UART1_DeInit();//波特率9位1位停止位無奇偶校驗(yàn)同步時(shí)鐘關(guān)發(fā)送接收使能
UART1_Init((u32)1000000,UART1_WORDLENGTH_9D,UART1_STOPBITS_1,UART1_PARITY_NO,UART1_SYNCMODE_CLOCK_DISABLE,UART1_MODE_TXRX_ENABLE);
9位數(shù)據(jù)STM8串口的配置:
USART_InitStructure.USART_BaudRate=115200;
USART_InitStructure.USART_WordLength=USART_WordLength_9b;
USART_InitStructure.USART_StopBits=USART_StopBits_1;
USART_InitStructure.USART_Parity=USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;
USART_Init(USART1,&USART_InitStructure);
要發(fā)送的數(shù)據(jù)類型要為16位,使用低9位即可。
STM8使用UART1_SendData9(value[j]);來發(fā)送。
STM32使用
voidUSART_SendData(USART_TypeDef*USARTx,uint16_tData)
{
/*Checktheparameters*/
assert_param(IS_USART_ALL_PERIPH(USARTx));
assert_param(IS_USART_DATA(Data));
/*TransmitData*/
USARTx->DR=(Data&(uint16_t)0x01FF);
}
來發(fā)送。