如果 m 连接使用外部振荡器的器件。 我是否还需要以该速率运行我的控制器? Ds1307使用晶体振荡器32.768kHz。 以便在 LCD 之类的东西或七个段上显示它。。。我是否应该运行具有外部振荡器的微控制器。 如果不是、则不会出现波束计时问题?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
如果 m 连接使用外部振荡器的器件。 我是否还需要以该速率运行我的控制器? Ds1307使用晶体振荡器32.768kHz。 以便在 LCD 之类的东西或七个段上显示它。。。我是否应该运行具有外部振荡器的微控制器。 如果不是、则不会出现波束计时问题?
空 I2Csend (unsigned char slave_addr、unsigned char data_addr、unsigned char 数据)
{
while (I2C3_MSTATUS_R & 0x01){};//忙
I2C3_MSA_R =(SLAVE_ADDR <1);//配置从器件进行写入
I2C3_MDATA_R = DATA_addr;
I2C3_MCONTROL_R =CMD_BURST_SEND_START; //0x03
while (I2C3_MSTATUS_R & 0x01){};//这是 stuck...not 溢出循环的位置...如果 GPIO_init 在 main 中调用...这是一行...
I2C3_MDATA_R =数据;
I2C3_MCONTROL_R = CMD_BURST_SEND_CONT;//0x01
while (I2C3_MSTATUS_R 和0x01){};
I2C3_MCONTROL_R = CMD_BURST_SEND_FINISH;//0x05
while (I2C3_MSTATUS_R 和0x01){};
}
unsigned char I2CReceive (unsigned char slave_addr、unsigned char data_addr)//从从从器件读取
{
unsigned char 值= 0;
while (I2C3_MSTATUS_R 和0x01){};//等待主机变为空闲状态(最后一个是忙位)
I2C3_MSA_R =(SLAVE_ADDR <1);//配置从器件进行写入
I2C3_MDATA_R = DATA_addr;
I2C3_MCONTROL_R =CMD_SINGLE_SEND;//0x07
while (I2C3_MSTATUS_R 和0x01){};
I2C3_MSA_R =((SLAVE_ADDR<1)| 0x01);//配置从器件进行读取
I2C3_MCONTROL_R =CMD_SINGLE_Receive;//0x07
while (I2C3_MSTATUS_R 和0x01){};
Value=(unsigned char) I2C3_MDATA_R;
返回值;
}