其中:t1 = prf(k,s | 0x01)t2 = prf(k,t1 | s | 0x02)t3 = prf(k,t2 | s | 0x03)t4 = prf(k,t3 | s | 0x04)表示串联0x01等。是常数,根据需要计算许多TI的
1.1 寄存器映射 ................................................................................................................................................ 11 1.1.1 温度测量数据 [Add:0x00] .......................................................................................................... 11 1.1.2 相对湿度测量数据 [Add:0x01] ........................................................................................................ 11 1.1.3 配置寄存器 [Add: 0x02] ...................................................................................................................... 12 1.1.4 警报上限设置 [Add: 0x03] ............................................................................................................. 13 1.1.5 制造商 ID [Add: 0xFE] ...................................................................................................................... 14 1.1.6 版本 ID [0xFF] ................................................................................................................................ 14 1.2 S OFT R ESET ............................................................................................................................................. 14 1.3 H EATER ............................................................................................................................................. 15 1.4 DOM 测量 P程序................................................................................................................................ 15 1.4.1 步骤 1,设置传感器 ...................................................................................................................... 15 1.4.2 步骤 2,触发温度和/或湿度测量 ................................................................................................ 15 1.4.3 步骤 3,等待转换时间 ................................................................................................................ 15 1.4.4 步骤 4,读取温度和/或湿度测量数据 ...................................................................................... 15 1.4.5 读取温度和湿度数据的 C++ 代码示例 ...................................................................................... 15 1.5 数字接口............................................................................................................................................. 17 1.5.1 从机地址 ................................................................................................................................ 17 1.5.2 读/写操作 ................................................................................................................................ 17 1.6 警报输出 ............................................................................................................................................. 19
io_set_cpg :执行 PLL 初始化 WDT.WRITE.WTCSR = 0xa51e; => WDT 停止,WDT 计数时钟设置 => 1/4096 x P 时钟(50MHz;20.97 毫秒) WDT.WRITE.WTCNT = 0x5a85; => 计数器初始设置 10 毫秒 CPG.FRQCR.WORD = 0x0303; => Clockin = 12.5MHz => I 时钟 = 200MHz,B 时钟 = 50MHz => P 时钟 = 50MHz CPG.MCLKCR.BIT.MSDIVS = 1; => MTU2S = 100MHz CPG.ACLKCR.BIT.ASDIVS = 3; => AD = 50MHz STB.CR3.BYTE = 0x02; => 模块待机清除 => HIZ、MTU2S、MTU2、POE2、IIC3、ADC0、保留(1)、FLASH STB.CR4.BYTE = 0xE2; => 模块待机清除 => SCIF3、保留(0)、CMT、保留(1)、EtherC STB.CR5.BYTE = 0x12; => 模块待机清除 => SCI0、SCI1、SCI2、SCI4、ADC1 pfc_init:执行 MTU2 初始化 ADC0.ADCR.BIT.ADCS = 0x0; => AD0 初始化 ADC0.ADANSR.BIT.ANS0 = 0x1; ADC0.ADANSR.BIT.ANS1 = 0x1; ADC0.ADANSR.BIT.ANS2 = 0x1; ADC0.ADANSR.BIT.ANS3 = 0x1; ADC0.ADBYPSCR.BIT.SH = 0x1; ADC1.ADCR.BIT.ADCS = 0x0; => AD1 初始化 ADC1.ADANSR.BIT.ANS0 = 0x1; ADC1.ADANSR.BIT.ANS1 = 0x1; ADC1.ADANSR.BIT.ANS2 = 0x1; ADC1.ADANSR.BIT.ANS3 = 0x1; MTU2S.TSTR.BYTE = 0x0; => 清除 MTU2S 计数器 MTU2S3.TCR.BIT.TPSC = 0x0; => MTU2S3 TCNT 清除禁用 MTU2S3.TCR.BIT.CKEG = 0x0; => MTU2S3 在上升沿计数 MTU2S4.TCR.BIT.TPSC = 0x0; => MTU2S4 TCNT 清除禁用 MTU2S4.TCR.BIT.CKEG = 0x0; => MTU2S4 在上升沿计数 MTU2S.TDDR = 1; => MTU2S 死区时间 MTU2S3.TGRB = 495; MTU2S3.TGRD = 495; MTU2S4.TGRA = 300; => PFC 输出 MTU2S4.TGRC = 300; => PFC 输出 MTU2S4.TGRB = 200; => PFC 输出 MTU2S4.TGRD = 200; => PFC 输出 MTU2S.TCDR = 500; => 三角波形设置 100K MTU2S.TCBR = 500; => 三角波形设置 100K MTU2S3.TGRA = 501; => 三角波形设置 100K MTU2S3.TGRC = 501; => 三角波形设置 100K MTU2S.TOCR1.BIT.PSYE = 0x1; => 切换输出 MTU2S.TOCR1.BIT.TOCS = 0x1; MTU2S.TOCR2.BIT.OLS3N = 0x0; => TIOC4D MTU2S.TOCR2.BIT.OLS3P = 0x1; => TIOC4B MTU2S.TOCR2.BIT.OLS2N = 0x1; => TIOC4C MTU2S.TOCR2.BIT.OLS2P = 0x0; => TIOC4A MTU2S.TOCR2.BIT.OLS1N = 0x0; => TIOC3D MTU2S.TOCR2.BIT.OLS1P = 0x1; => TIOC3B MTU2S3.TMDR.BIT.MD = 0xF; => 峰值时输出高电平 MTU2S.TOER.BIT.OE3B = 0x1; => TIOC3B 引脚输出 MTU2S.TOER.BIT.OE3D = 0x1; => TIOC3D 引脚输出
