主题中讨论的其他器件: LM339
工具/软件:Code Composer Studio
您好!
当我写入 DAC102S085时、例如、我写入一个字0x5E1C 来将 DAC_B 设置为输出一个电压、该值是转换的、不是稳定的。
接下来是我的程序和波形。
请帮我解决问题。
#include
unsigned char RXData = 0;
unsigned char TXData;
int main (空)
{
WDTCTL = WDTPW | WDTHOLD;
P1SEL0 |= BIT5 | BIT6 | BIT7;//将3-SPI 引脚设置为第二功能
P1DIR |= BIT1;
P1OUT |= BIT1;
UCA0CTLW0 |= UCSWRST;//**将状态机置于复位状态**
UCA0CTLW0 |= UCMST|UCSYNC|UCMSB|UCCKPL|UCCKPH;// 3引脚、8位 SPI 主器件
//时钟极性高,MSB
UCA0CTLW0 |= UCSSEL_ACLK;//选择 ACLK
UCA0BR0 = 0x02;// BRCLK = ACLK/2
UCA0BR1 = 0;//
UCA0MCTLW = 0;//无调制
UCA0CTLW0 &=~UCSWRST;//**初始化 USCI 状态机**
UCA0IE |= UCRXIE;//启用 USCI_A0 RX 中断
PM5CTL0 &=~LOCKLPM5;//禁用 GPIO 上电默认高阻抗模式
//激活先前配置的端口设置
while (1)
{
P1OUT &=~ BIT1;
UCA0IE |= UCTXIE;
_bis_SR_register (LPM0_bits | GIE);//启用全局中断,进入 LPM0
TXData = 0x1C;
UCA0IE |= UCTXIE;//启用 TX 中断
_bis_SR_register (LPM0_bits | GIE);//启用全局中断,进入 LPM0
TXData = 0x5E;
_DELAY_CYCLES (100);
P1OUT |= BIT1;
_DELAY_CYCLLES (60);
}
}
#if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__)
#pragma vector=USCI_A0_Vector
_interrupt void USCI_A0_ISR (void)
#Elif defined (_GNU_)
void __attribute__((中断(USCI_A0_Vector)) USCI_A0_ISR (void)
其他
错误编译器不受支持!
#endif
{
开关(__evo_in_range (UCA0IV、USCI_SPI_UCTXIFG))
{
案例 USCI_NONE:中断;//向量0 -无中断
USCI_SPI_UCRXIFG 案例:
RXData = UCA0RXBUF;
UCA0IFG &=~UCRXIFG;
_BIC_SR_REGISTER_ON_EXIT (LPM0_BITS);//唤醒以设置下一个 TX
中断;
USCI_SPI_UCTXIFG 案例:
UCA0TXBUF = TXData;//发送字符
UCA0IE &=~UCTXIE;
中断;
默认值:break;
}