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.

[参考译文] MSP430F249-EP:Msp430f249 EP I2C 至 Tmp101解析

Guru**** 670150 points
Other Parts Discussed in Thread: TMP101, TMP100, MSP430F249
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/849901/msp430f249-ep-msp430f249-ep-i2c-to-tmp101-resolation

器件型号:MSP430F249-EP
主题中讨论的其他器件:TMP101MSP430WARETMP100MSP430F249

大家好,我是 MSP 系列的新编程人员,我需要更改 tmp101分解,但我不能这样做,我是嵌入式编码的常客。


İ 查看文档 tmp101,判断您是否更改了解析,您需要先发送地址,然后再发送指针0x01和最后配置寄存器0x60,我需要读取 temparrature,但我不能,我只能读取启动解析9位。

/*-版权所有-、BSD_EX
*版权所有(c) 2012、德州仪器(TI)公司
*保留所有权利。
*
*以源代码和二进制形式重新分发和使用、有无
*如果满足以下条件、则允许进行修改
符合*:
*
**源代码的重新分发必须保留上述版权
*注意、此条件列表和以下免责声明。
*
**二进制形式的再发行必须复制上述版权
*请注意、中的此条件列表和以下免责声明
*随分发提供的文档和/或其他材料。
*
**德州仪器公司的名称和名称均不相同
*其贡献者可用于认可或推广衍生产品
*未经特定的事先书面许可。
*
*本软件由版权所有者和贡献者"按原样"提供
*以及任何明示或暗示的保证、包括但不限于:
*特定适销性和适用性的隐含保证
*不承认目的。 在任何情况下、版权所有者不得或
*派遣国应对任何直接、间接、偶然、特殊、
*典型或必然的损害(包括但不限于
*采购替代货物或服务;丧失使用、数据或利润;
*或业务中断)、无论原因是什么以及任何责任理论、
*无论是合同、严格责任还是侵权行为(包括疏忽或)
*否则)因使用本软件而以任何方式产生、
*即使被告知可能会发生此类损坏。
*
秘书长的报告
*
* MSP430代码示例免责声明
*
* MSP430代码示例是通常包含的低级程序
*高度演示单个外设功能或器件功能
*简明扼要。 为此、代码可能依赖于器件的加电默认值
*寄存器值和设置、如时钟配置和注意
*在组合多个示例中的代码时应采取这种方法、以避免潜在的问题
*效果。 有关 GUI、另请参阅 www.ti.com/grace 和 www.ti.com/msp430ware
*用于外设配置的 API 函数库方法。
*
*--/版权--*/
//
// MSP430x24x 演示- USCI_B0 I2C 主设备至 TMP100、如果温度> 28C、则设置 P1.0
//
//说明:9位模式下连接 TMP100温度传感器的 I2C 接口。
// Timer_A CCR0中断用于唤醒和读取的两个字节
// TMP100温度寄存器每62ms 执行一次。 温度越高
//高于28C、P1.0被置位、否则复位。 CPU 在 LPM0中运行。 I2C 速度
//为~100kHz。
// ACLK = n/a、MCLK = SMCLK = TACLK = BRCLK =默认 DCO =~1.045Mhz
//
///|\/|\/|\
//| TMP100 10k 10k MSP430F249
//|--- |||----
//+-|Vcc SDA|<-|-+->|P3.1/UCB0SDA XIN|-
//||||| |
//+-|A1、A0 ||| XOUT|-
//|||||
//+-|VSS SCL|<----- |P3.2/UCB.S. P1.0|--> LED
//\|/---- ||
//
// B. Nisarga
// Texas Instruments Inc.
// 2007年9月
//使用 CCE 版本:3.2.0和 IAR Embedded Workbench 版本:3.42A 构建
//
#include

unsigned int RxByteCtr;
unsigned int RxWord;

int main (空)

WDTCTL = WDTPW + WDTHOLD;//停止 WDT
P1OUT = 0;
P1DIR |= 0x01;// P1.0输出
P3SEL |= 0x06;//将 I2C 引脚分配给 USCI_B0
UCB0CTL1 |= UCSWRST;//启用 SW 复位
UCB0CTL0 = UCMST + UCMODE_3 + UCSYNC;// I2C 主器件、同步模式
UCB0CTL1 = UCSSEL_2 + UCSWRST;//使用 SMCLK、保持软件复位
UCB0BR0 = 12;// fSCL = SMCLK/12 =~100kHz
UCB0BR1 = 0;
UCB0I2CSA = 0x4E;//设置从器件地址
UCB0CTL1 &=~UCSWRST;//清除 SW 复位,恢复运行
IE2 |= UCB0RXIE;//启用 RX 中断
TACTL = tassel_2 + MC_2;// SMCLK、contmode

while (1)

RxByteCtr = 2;//加载 RX 字节计数器
UCB0CTL1 |= UCTXSTT;// I2C 启动条件
_bis_SR_register (CPUOFF + GIE);//输入 LPM0、启用中断
//保持在 LPM0中直到所有数据
//是 RX

如果(RxWord < 0x1d00)//>28C?
P1OUT &=~0x01;//否、P1.0 = 0
其他
P1OUT |= 0x01;//是、P1.0 = 1

_disable_interrupt ();
TACCTL0 |= CCIE;//启用 TACCR0中断
_bis_SR_register (CPUOFF + GIE);//输入 LPM0、启用中断
//保持在 LPM0中直到 TACCR0
//中断发生
TACCTL0 &=~CCIE;// TACCR0中断被禁用

#if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__)
#pragma vector = TIMERA0_vector
_interrupt void TA0_ISR (void)
#Elif defined (_GNU_)
void __attribute__((interrupt (TIMERA0_vector)) TA0_ISR (void)
其他
错误编译器不受支持!
#endif

_BIC_SR_REGISTER_ON_EXIT (CPUOFF);//退出 LPM0

// USCIAB0TX_ISR 的结构使其可用于接收任何
//通过预加载带字节计数的 RxByteCtr 来获得2+字节数。
#if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__)
#pragma vector = USCIAB0TX_vector
_interrupt void USCIAB0TX_ISR (void)
#Elif defined (_GNU_)
void __attribute__((interrupt (USCIAB0TX_vector)) USCIAB0TX_ISR (void)
其他
错误编译器不受支持!
#endif

RxByteCtr --;//递减 RX 字节计数器

IF (RxByteCtr)

RxWord =(无符号 int) UCB0RXBUF << 8;//获取接收到的字节
如果(RxByteCtr = 1)//只剩下一个字节?
UCB0CTL1 |= UCTXSTP;//生成 I2C 停止条件

其他

RxWord |= UCB0RXBUF;//获取最终接收到的字节、
//组合 MSB 和 LSB
_BIC_SR_REGISTER_ON_EXIT (CPUOFF);//退出 LPM0

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我看了您的代码、发现在您生成开始位后、您进入 LPM0、但您似乎没有启用开始位中断。 在这种情况下、我假设您的代码在没有任何其他操作的情况下会停留在 LPM0。 但是、由于格式不好、我可能也错过了一些东西。

    请您首先检查我说过什么、如果可能、您可以在以后的论坛中使用语法工具上传您的代码吗?

    谢谢。

    此致、

    哈里

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您对此有任何更新吗?