WCH沁恒单片机
直播中

赵敏

7年用户 1082经验值
私信 关注
[问答]

请问CH32V103串口如何发送9位数据的格式?

最近需要用到 9位数据的发送格式   1个起始位 + 9数据位 +1停止位;共11位  我看库文件的格式都是按照9位处理的;

那8位 9位的使用区别在哪?
/*********************************************************************
* @fn      USART_SendData
*
* @brief   Transmits single data through the USARTx peripheral.
*
* @param   USARTx - where x can be 1, 2, 3 to select the USART peripheral.
*          Data - the data to transmit.
*
* @return  none
*/
void USART_SendData(USART_TypeDef *USARTx, uint16_t Data)
{
    USARTx->DATAR = (Data & (uint16_t)0x01FF);
}
/*********************************************************************
* @fn      USART_ReceiveData
*
* @brief   Returns the most recent received data by the USARTx peripheral.
*
* @param   USARTx - where x can be 1, 2, 3 to select the USART peripheral.
*
* @return  The received data.
*/
uint16_t USART_ReceiveData(USART_TypeDef *USARTx)
{
    return (uint16_t)(USARTx->DATAR & (uint16_t)0x01FF);
}


回帖(1)

张强

2022-7-20 09:17:45
您好,若要发送9位数据的格式,在进行串口初始化配置的时候,需要配置串口控制寄存器1的字长位为9个数据位。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分