STM32中 USART_SendData();函数为什么数据要是16位的,USART只能传输8位或9位数据,
我要和8位单片机通信,数据该如何处理
void USART_SendData(USART_TypeDef* USARTx, uint16_t Data)
{
/* Check the parameters */
assert_param(IS_USART_ALL_PERIPH(USARTx));
assert_param(IS_USART_DATA(Data));
/* Transmit Data */
USARTx->DR = (Data & (uint16_t)0x01FF);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
我用中断接受一组数据,在初始化就打开接受中断,并用DMA方式发送,为什么只发送一帧数据,USART接受是否还要专门清中断标志位
---------------------------------
只要进中断了,就都应该清楚标志的.否则会重复进入.
---------------------------------
可是手册中说单缓冲模式,只要读取DR寄存器就可以清楚RXNE位。
[mw_shl_code=c,true]void USART_SendData(USART_TypeDef* USARTx, uint16_t Data)
u8 USART_RX_BUF[USART_REC_LEN]; //接收缓冲,最大USART_REC_LEN个字节.
//===================//
请问原子哥,要求参数uint16_t,我们传递的u8 USART_RX_BUF这是为什么??
//===============//
USART_RX_BUF[USART_RX_STA&0X3FFF]=Res;
这里u16 USART_RX_STA=0; //接收状态标记
请问这里定义的U8数组里面写U16参数为什么不报错,而且Res是把u8放入数组的??谢谢[/mw_shl_code]
一周热门 更多>