主题中讨论的其他部件: MSPWARE
帮助!!! 我无法启动水晶表片。 我在4个不同的板上尝试了几个带12 pF电容器和不带12 pF电容器的晶体,否则可以正常工作。 任何建议都是这样
非常感谢。
晶体:
CM1303.2768万DZYT
AB26TRQ-32.768kHz-T (与 5529 Launchpad相同)
CFS-2063.2768万DZFB
我已将它们焊接到板上(请参阅布局)并直接焊接到针脚上。
以下是布局:
这是我使用的代码,所有的组合晶体都超时,失败。
#include "driverlib.h"
包含"msp430f5659.h"
#包括"hal.h"
#define gPIO_ALL gPIO_PIN0|gPIO_PIN1|gPIO_PIN2|gPIO_PIN3|gPIO_PIN4|gPIO_PIN5|gPIO_PIN6|gPIO_PIN7
void initPorts(void)
{
//P9初始化
//P1初始化LCD_CONTINT_PORT
lcd_control_port_sel=整体端口is GPIO;
LCD_CONTINT_PORT_DIR=Whole Port_is_output;
LCD_CONTROL_PORT_OUT |= LCD_RDNOT_HI|LCD_WRNOT_HI|LCD_DONT_RESET_HI|LCD_BM1_HI;
lcd_control_port_out &= lcd_cd_command_LO和lcd_not _selected_CS_LO和lcd_BM0_LO;
//P2初始化未使用
GPIO _setOutputLowOnPin (GPIO端口P2,GPIO _ALL);
GPIO_setAsOutputPin (GPIO端口P2,GPIO _ALL);
//P3初始化LCD_BUS_PORT
LCD_bus_port_sel=整体端口is GPIO;
SET_LCD_BUS_to_OUTPUT;
lcd_bus_port_out = 0x00;
//P4初始化
//WFP 4.0 HOLT_POWER_ON
P4SEL =整体端口_是_GPIO;
P4DIR =整体端口输出;
P4OUT = HOLD_POWER_ON_HI;
//P5初始化
//WFP 5.4 backlight_control
//WFP 5.5 PWR_KEY
P5sel=整体端口是GPIO;
P5DIR= Whole端口_is_output&~P5_Inputs;
P5REN= PWR_KEY_PIN;
P5OUT= PWR_KEY_PIN;
//P6初始化
//WFP 6.0 BAT_MONITOR
//WFP 6.2 左键
//WFP 6.4 zero_key
P6SEL=整体端口_is_GPIO |BAT_MONITOR;
P6DIR=Whole端口_is_output&~P6_inputs;
P6REN=P6_Pullups;
P6OUT=P6_Pups;
//P7初始化
//WFP 7.2 X2in.
//WFP 7.3 X2OUT
P7SEL=整体端口_is_GPIO |X2IN|X2OUT;
P7DIR=Whole Port_is_output&~P7_Inputs;
P7OUT=0x00;
//P8初始化
// WFP 8.5 UCB1SDA
//WFP 8.6
//WFP 8.7 右键
P8SEL=整体端口_is_GPIO |UCB1SDA |UCB.S.;
P8DIR=Whole端口_is_output&~P8_inputs;
P8REN=P8_Pullups;
P8OUT=UCB.S.|P8_PULUPs;
//P9初始化
//WFP 9.0 UP_KEY
//WFP 9.1 向下键
//WFP 9.2 units_key
//WFP 9.5 XRES
//WFP 9.6 SWD_Clock
//WFP 9.7 SWD_IO
P9sel=整体端口_是_GPIO;
P9DIR= Whole端口_is_output&~(P9_Inputs|XRES_PIN|SWD_Clock_PIN|SWD_Clock_PIN);
P9REN=P9_Pullups;
P9OUT=P9_Pullups;
//PJ初始化
GPIO_setOutputLowOnPin (GPIO端口PJ,GPIO _ALL);
GPIO_setAsOutputPin (GPIO端口PJ,GPIO _ALL);
}
无符号char initClocks(UINT32_t mclkFreq)
{
unsigned char status = STATUS_SUCCESS;
STATUS=UCS_TRENONLFXT1WithTimeout (UCS_XT1_DRIVE_2,UCS_XCAP_232000);
//UCS_initClockSignal (UCS_FLLREF,UCS_REFCLK_SELECT,UCS_CLock_diver_1);
UCS_initClockSignal (UCS_FLLREF,UCS_XT1CLK_SELECT,UCS_CLock_diver_1);
//UCS_initClockSignal (UCS_ACLK,UCS_REFCLK_SELECT,UCS_CLock_diver_1);
UCS_initClockSignal (UCS_ACLK,UCS_XT1CLK_SELECT,UCS_CLock_diver_1);
//status=UCS_turnOnLFXT1WithTimeout (UCS_XT1_DRIVE_3,UCS_XCAP_365000);
ucs_initFLLSettle (mclkFreq/1000,mclkFreq/3.2768万);
退货状态;
}
int main (void){
WDTCTL = WDTPW | WDTHOLD; //停止看门狗计时器
P4DIR |= 0x02; //将WFP 1.0 设置为输出方向
P4DIR |= 0x04;
用于(;;){
volatile unsigned int I; // volatile,用于防止优化
if(initClocks(100万)=status_fail){// 配置时钟。 MCLK=SMCLK=FLL=1MHz;ACLK=REFO=32kHz
P4OUT |= 0x02;
P4OUT &=~0x04;
}
否则{
P4OUT &=~0x02;
P4OUT |= 0x04;
}
I = 1万; //软件延迟
我是否--;
while (i !=0);
}
返回0;
}


