📄 smbus0config.c
字号:
/******************************************************************************
** 文 件:SMBusConfig.C
** 功 能:SMBus0初始化
*******************************************************************************/
#include<c8051f020.h>
/*******************交叉开关配置*********************/
void XBR_Config(void)
{
XBR2 = 0x40; //交 叉 开 关 使 能
XBR0 = 0x05; //SMBus SDA: P0.0
P0MDOUT= 0x00; // SCL : P0.1
P1MDOUT= 0xff; //P0.0,P0.1漏极开路
//P1: 推 挽 输 出
}
/*******************SMBus初始化**********************/
void SMBus_Config(void)
{//system clock=22.1184MHZ
//SMBus0串行时钟速率:107.89 KMZ
//SMBus0总线空闲超时周期:45.7us
//SMB0CN|=0x43; //SMBus使能
//SMB0CR =0x9c; //低 电平 超时 使能
//高电平空闲使能
//system colck=12MHZ
//SMBus0串行时钟速率:108.11 KMZ
//SMBus0总线空闲超时周期: 45 us
SMB0CN|=0x43; //SMBus使能
SMB0CR =0xcb; //低 电平 超时 使能
//SMB0ADR=0x02; //主发送02
SMB0ADR=0x04; //主接收04
//高电平空闲使能
}
/*******************定时器3初始化*********************/
void TMR3(void)
{
TMR3CN|=0x04; //定时25ms允许
TMR3H =0xB4;
TMR3L =0x00;
TMR3RLH=0xB4; //定时器重载植
TMR3RLL=0x00;
}
/**********************发送起始位*********************/
void smbusMasterStart(void)
{//此函数用来启动主机发送起始位,主机发送完起始位将引发中断
STA=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -