ch582的uart1,接收數(shù)據(jù)的最高位固定是1

用串口給uart1發(fā)送了一個(gè)0x03,但是UART1_RecvString(RxBuff);這個(gè)代碼讀出來(lái)的數(shù)據(jù)最高位永遠(yuǎn)是1,不管發(fā)送的數(shù)據(jù)是幾,調(diào)試的時(shí)候代碼讀出來(lái)最高位都是1這是什么問(wèn)題

image.png

image.png

__INTERRUPT
__HIGH_CODE
void?UART1_IRQHandler(void)
{
????volatile?uint8_t?i;
????switch(UART1_GetITFlag())
????{
????????case?UART_II_LINE_STAT:?//?線路狀態(tài)錯(cuò)誤
????????{
????????????//?UART0_GetLinSTA();
????????????break;
????????}

????????case?UART_II_RECV_RDY:?//?數(shù)據(jù)達(dá)到設(shè)置觸發(fā)點(diǎn)
????????????break;

????????case?UART_II_RECV_TOUT:?//?接收超時(shí),暫時(shí)一幀數(shù)據(jù)接收完成
????????????i?=?UART1_RecvString(RxBuff);
????????????LOG_INFO("shoudao%d",RxBuff[0]);
????????????break;

????????case?UART_II_THR_EMPTY:?//?發(fā)送緩存區(qū)空,可繼續(xù)發(fā)送
????????????break;

????????case?UART_II_MODEM_CHG:?//?只支持串口0
????????????break;

????????default:
????????????break;
????}

}


您好,您是如何配置串口的,串口數(shù)據(jù)長(zhǎng)度是配置了7個(gè)數(shù)據(jù)位嗎,重新解壓一份EVT,運(yùn)行例程會(huì)有問(wèn)題嗎。

您可以檢查一下R8_UART1_LCR寄存器,最低2位是否為10b。

如果是配置為7個(gè)數(shù)據(jù)位,需要將上位機(jī)串口助手也選擇7位發(fā)送。

image.png


我這個(gè)是在官方給的三模鍵盤(pán)上加的art1接收的中斷函數(shù),其他地方都沒(méi)動(dòng),就加了接收uart1數(shù)據(jù)的代碼就有這個(gè)問(wèn)題,我在其他例程上接收數(shù)據(jù)都是正常的,在這個(gè)項(xiàng)目上就是最高位一直為1,下面是main函數(shù)里的初始化代碼。

#ifdef?DEBUG
????GPIOA_SetBits(bTXD1);
????GPIOA_ModeCfg(bTXD1,?GPIO_ModeOut_PP_5mA);
????UART1_DefInit();

????UART1_ByteTrigCfg(UART_7BYTE_TRIG);
????UART1_INTCfg(ENABLE,?RB_IER_RECV_RDY?|?RB_IER_LINE_STAT);
????PFIC_EnableIRQ(UART1_IRQn);
#endif

下面是庫(kù)函數(shù)沒(méi)有做過(guò)修改,是8位數(shù)據(jù)位

void?UART1_DefInit(?void?)
{	
????UART1_BaudRateCfg(?921600?);
????R8_UART1_FCR?=?(2<<6)?|?RB_FCR_TX_FIFO_CLR?|?RB_FCR_RX_FIFO_CLR?|?RB_FCR_FIFO_EN;		//?FIFO打開(kāi),觸發(fā)點(diǎn)4字節(jié)
????R8_UART1_LCR?=?RB_LCR_WORD_SZ;	
????R8_UART1_IER?=?RB_IER_TXD_EN;
????R8_UART1_DIV?=?1;	
}

這個(gè)是項(xiàng)目文件

icon_rar.gifThree-mode_kbd.rar



只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频