ATmega128 與CH438 調試成功,謝謝各位支持 !

在初始化中增加了讀中斷識別寄存器 ,運行后不在一直中斷, 不知道原因,歡迎交流 :QQ54549122例子如下 : void InitCH438UART0( void ) { UINT16 div; UINT8 DLL, DLM;

/************************************************************************** 設置CH438串口0的寄存器 **************************************************************************/ UART0_Reset(); div = ( Fpclk >> 4 ) / CH438UART0_BPS; DLM = div >> 8; DLL = div & 0xff; WriteCH438Data( REG_LCR_ADDR, BIT_LCR_DLAB ); /* 設置DLAB為1 */ WriteCH438Data( REG_DLL_ADDR, DLL ); /* 設置波特率 */ WriteCH438Data( REG_DLM_ADDR, DLM ); WriteCH438Data( REG_FCR_ADDR, BIT_FCR_RECVTG1 | BIT_FCR_RECVTG0 | BIT_FCR_FIFOEN ); /* 設置FIFO模式,觸發(fā)點為112字節(jié) */ WriteCH438Data( REG_LCR_ADDR, BIT_LCR_WORDSZ1 | BIT_LCR_WORDSZ0 ); /* 字長8位,1位停止位、無校驗 */ WriteCH438Data( REG_IER_ADDR, BIT_IER_IELINES | BIT_IER_IETHRE | BIT_IER_IERECV ); /* 使能中斷 */ Status = ReadCH438Data( REG_IIR_ADDR ); // 中斷識別寄存器 -------正確值:0x01 WriteCH438Data( REG_MCR_ADDR, BIT_MCR_OUT2|BIT_MCR_RTS| BIT_MCR_DTR); /* 允許中斷輸出,DTR,RTS為1 | BIT_MCR_RTS | BIT_MCR_DTR */ WriteCH438Data(REG_FCR_ADDR,ReadCH438Data(REG_FCR_ADDR)| BIT_FCR_TFIFORST|BIT_FCR_RFIFORST); /* 清空FIFO中的數(shù)據(jù) */ }

“運行后不在一直中斷”是什么意思?有一點,F(xiàn)IFO開啟后,理論上IIR讀出的值應該是0xC1或者0xC2,這個值如果讀出來不對的話,那你應該去調試一下你的MCU是否能和CH438正常通信。


只有登錄才能回復,可以選擇微信賬號登錄

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