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.

[参考译文] MSP430FR2433:MSP430在外部电源模式下不工作。 连接到 PC 后工作正常

Guru**** 2563960 points
Other Parts Discussed in Thread: MSP430FR2433, TLV700

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/749741/msp430fr2433-msp430-not-working-when-on-external-power-mode-works-fine-when-connected-to-pc

器件型号:MSP430FR2433
主题中讨论的其他器件: TLV700

基本上、我有两个 msp430fr2433板、这两个板都具有 HC05、被设置为主器件和从器件。 连接到 PC 并进行调试时。 从器件 MSP430获取数据并对继电器进行切换。 但是、当我将它放在外部电源上时、即使 HC05彼此相连、它也不会执行任何操作。

代码:

#include "msp430.h";#define controlled include 文件

名称 main;模块名称

公共主;使主标签可见
;在本模块之外
org 0FFFEh
DC16 init;将复位矢量设置为'init'标签

RSEG CSTACK;段的预先声明
RSEG 代码;将程序置于“代码”段中
RSEG DATA16_N
RXData DW 10h
预数据 DW 10h
初始化:MOV #SFE (CSTACK),SP;设置堆栈

主程序:NOP;主程序
MOV.W #WDTPW+WDTHOLD、&WDTCTL;停止看门狗计时器
BIC.w #LOCKLPM5、PM5CTL0
;18:E4:35F093 <--蓝牙地址

;端口
BIS.b #BIT0、P1DIR
BIC.b #BIT0、P1OUT
;中继端口打开
BIS.b #BIT0、P2DIR
BIS.b #BIT1、P2DIR
BIS.b #BIT5、P2DIR
BIS.b #BIT6、P2DIR
;初始化端口
BIS.b #BIT0、P2OUT
BIS.b #BIT1、P2OUT
BIS.b #BIT5、P2OUT
BIS.b #BIT6、P2OUT
;测试电机
;转发
BIC.b #BIT0、P2OUT
BIS.b #BIT1、P2OUT
BIC.b #BIT5、P2OUT
BIS.b #BIT6、P2OUT
;向后
BIS.b #BIT0、P2OUT
BIC.b #BIT1、P2OUT
BIS.b #BIT5、P2OUT
BIC.b #BIT6、P2OUT
;测试输出
;停止
BIS.b #BIT0、P2OUT
BIS.b #BIT1、P2OUT
BIS.b #BIT5、P2OUT
BIS.b #BIT6、P2OUT


BIS.w #SCG0、SR
BIS.w #SELREF_REFOCLK、&CSCTL3;为时钟源= REFOCLK 创建基准
MOV.w #0、&CSCTL0
BIC.w #DCORSEL_7、&CSCTL1;清除数据@ CSCTL1
BIS.w #DCORSEL_3、&CSCTL1;将 DCO 设置为1MHz 运行
MOV.w #FLLD_0+243、&CSCTL2;FLLD+30 =针对8MHz DCO 的 FLLD
NOP
NOP
NOP
BIC.w #SCG0、SR

解锁 FLL:
MOV.w &CSCTL7、R13
和.w #FLLUNLOCK0|FLLUNLOCK1、R13
Jnz 解锁 FLL

MOV.w #SELMS_DCOCLKDIV+SELA_REFOCLK、&CSCTL4

BIS.b #BIT4+BIT4、&P1SEL0
BIS.w #UCSWRST、&UCA0CTLW0
BIS.w #UCSSEL_SMCLK、和 UCA0CTLW0

MOV.b #65、&UCA0BR0
MOV.b #3、&UCA0BR1
BIS.w #UCBRS2、&UCA0MCTLW
BIC.w #UCSWRST、&UCA0CTLW0
CLR.w RXData

大型环路:
BIS.w #UCRXIE、&UCA0IE
CMP.w RXData、PreData
Jeq 跳过

CMP.w #0x02、RXData
Jeq 正向
CMP.w #0x01、RXData
Jeq 向后
CMP.w #0x00、RXData
吉普车站

JMP 跳过
前进:
BIC.b #BIT0、P2OUT
BIS.b #BIT1、P2OUT
BIC.b #BIT5、P2OUT
BIS.b #BIT6、P2OUT
MOV.w RXData、PreData
JMP MainLoop
向后:
BIS.b #BIT0、P2OUT
BIC.b #BIT1、P2OUT
BIS.b #BIT5、P2OUT
BIC.b #BIT6、P2OUT
MOV.w RXData、PreData
JMP MainLoop
停止:
BIC.b #BIT0、P2OUT
BIC.b #BIT1、P2OUT
BIC.b #BIT5、P2OUT
BIC.b #BIT6、P2OUT
MOV.w RXData、PreData
JMP MainLoop
跳过:
BIS.w RXData、PreData
JMP MainLoop
USC_ISR:
MOV.w &UCA0RXBUF、RXData
BIC.w #UCRXIFG、&UCA0IFG
BIC.w #UCRXIE、&UCA0IE
TI


常见的 INTVEC
org USCI_A0_Vector
DW USC_ISR
结束

这就是 MSP430接收器的设置方式。 如果连接到计算机、则工作正常、但在使用外部电源时完全停止。 如果有任何建议、我们将不胜感激!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1) 1)我看不到您在启用全局中断(GIE)的位置。 是否缺少一些代码?
    2) 2)我建议您在启动早期对其中一个 Launchpad LED (例如 P1.0)进行"启动闪烁"、以便您获得进度报告。
    3) 3)我可以告诉您、您将向5V 引脚馈送6V (4节 AA 电池)电压。 TLV700的额定电压仅高达5.5V。 更一般而言、我认为 J6不用于为 Launchpad 供电、因此可能还有其他一些我看不到的障碍。
    4) 4)调试时、HC05始终通电。 加电后启动可能需要一些时间。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1.眼睛好。 我也不知道我为什么这么做。 将在早上尝试
    2.将在早上尝试
    3、似乎工作正常、没有故障、所以将再测试几天、然后返回并得到答案
    4. HC05立即打开。

    感谢您的回复。 我将在早上进行测试、并告诉您发生了什么。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    已测试(2)。 工作正常
    启用 GIE。 不管用。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您如何知道 HC-05正在运行? 发送器是否传输任何数据? 接收器是否接收到任何内容?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很确定、现在它只是编程方面的问题。 因为我有计时器设置、它在 MSP430上闪烁一个灯。 具有不同5V 电源上继电器的同一电路。

    BIS.W #SELMS_VLOCLK、&CSCTL4
    ;BIC.W #OFIFG、&SFRIFG1
    ;BIS.W #SCG0、SR
    ;BIS.W #SCG1、SR
    BIC.W #LOCKLPM5、&PM5CTL0 ;解锁 I/O 引脚
    BIS.B #1h、&P1DIR

    BIS.W #CCIE、&TA0CCTL0 ;定时器0中断使能
    MOV.W #32000、&TA0CCR0
    BIS.W #tassel_1_MC_1、&TA0CTL
    NOP
    BIS.W #LPM3 + GIE、SR
    ;BIS.W #CPUOFF + GIE、SR
    NOP

    JMP $ ;跳转至当前位置'$'


    计时器:
    XOR.B #1h、&P1OUT
    TI

    这是我要使用的设置代码。
    HC-05具有内置灯、让我知道它们已连接。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    那么、它不能正常工作的原因是什么?

    我仍然担心它在没有 GIE 的情况下"工作正常"。 我看到您初始化 RXData 的位置、但 PreData 初始化最好是电路性的。 调试时、未初始化的变量可以在多个会话中保留其值(例如、两小时前设置为3)、但在下电上电后可以是任何值。 我建议您也初始化 PreData、可能会像0xFF 这样荒谬。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

     如果没有调试器、它无法正常工作的最关键的原因是您已将代码放置在 RAM 中、并且在下电上电后消失。

    RSEG… 指令告诉汇编器将以下代码或数据放置在何处。

    使用

    RSEG 代码;将程序置于“代码”段中

    RSEG DATA16_N

    RXData DW 10h

    预数据 DW 10h

    初始化:MOV #SFE (CSTACK),SP;设置堆栈

    您可以将以 init 标签开头的代码放入 DATA16_N 中、这是 RAM。

    那么、使用该序列

    RSEG CSTACK;段的预先声明

    RSEG DATA16_N

    RXData DW 10h

    预数据 DW 10h

    RSEG 代码;将程序置于“代码”段中

    初始化:MOV #SFE (CSTACK),SP;设置堆栈

    主程序:NOP;主程序

    它会将代码放置在闪存中

    此致、

    Stefan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    神圣的垃圾,你是一个天才。 现在、我了解更多信息。 谢谢!