關(guān)于CH438Q 通訊問題


求助:初始化完成后中斷引腳一直為低電平,讀SSR寄存器為0xFF,讀IIR寄存器也是0xFF。

初始化后寄存器配置如下:為寫入后讀出來的數(shù)據(jù)

IER: 00? IIR: 01? LCR: 00? MCR: 00? LSR: 60? MSR: 00? SCR: ab? FCR: 01

讀寫操作例程如下

void CH438WriteReg(unsigned char add,unsigned char data)

{

SetOutPut();

Writedata(add);

SET_CS_L();

SET_ALE_H();

Ddl_Delay1us(1);

SET_ALE_L();

Writedata(data);

SET_WR_L();

Ddl_Delay1us(1);

SET_WR_H();

SET_CS_H();

}


unsigned char CH438ReadReg(unsigned char addr)?

{

unsigned char value;

SetOutPut();

Writedata(addr);

SET_CS_L();

SET_ALE_H();

Ddl_Delay1us(1);

SET_ALE_L();

SetInPut();

SET_RD_L();

Ddl_Delay1us(1);

value = ReadData();

SET_RD_H();

SET_CS_H();

return value;

}


您好,您可以先判斷一下芯片的接口通訊是否正常,先判斷一下您使用的是直接地址還是服用地址,這個在硬件上您需要判斷上電時候AMOD腳的電平狀態(tài)。其次,可以去讀寫SCR寄存器判斷時序是否正常。正常的話,讀出即為寫入的值。如果想要模擬時序例程,可以發(fā)送郵件到mj@wch.cn


SCR 寄存器寫入跟讀出是一樣的,循環(huán)多次寫都是如此,AMOD引腳上電后就拉高了


如果說讀寫SCR沒問題的話,那您看一下您的寄存器配置是不是有問題,例如您給出的MCR寄存器的值是:00,但是MCR實際需要姜OUT2位置1才會有中斷,您這個寄存器讀出的值,明顯都是不對的,您可以看一下您實際寫入的參數(shù)。


我用你們發(fā)的例程也有同樣的問題,復(fù)位后寫配置 發(fā)現(xiàn)DLL 和 MCR 配置寄存器寫進(jìn)去與讀出來的值不一樣


您好,您可以確認(rèn)這幾點。

  1. 芯片的供電是否按照我們需求。

  2. 您讀取的兩個寄存器,一個DLL是寄存器,是需要再DLAB位為1時的才能讀取DLL,否則讀取的是RBR寄存器

  3. MCR寄存器本身的值會隨著芯片的操作,會有變化。如果是指想判斷接口通訊的話,可以通過多次讀寫SCR判斷。


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

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