⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 initial.c

📁 IAR Embedded Workbench下编译的sst25lf080a操作的MSP430程序包括串口通讯
💻 C
字号:
/************************************************************************************
**函数名 :initial.c
**描  述 :系统单片机初始化子程序
**版  本 :
**备  注 : 
**时  间 :2007-5-25 
**设  计 :
**修  改 : 
************************************************************************************/ 
#include "msp430x14x.h"
#include "In430.h"
#include "main.h"
#include "m430io.h"
/************************************************************************************
**函数名 :init_430
**描  述 :430单片机初始化
**时  间 :2007-5-25 
**修  改 : 
**备  注 : 
************************************************************************************/ 
void init_430(void)
{
    unsigned int i;
  
   P1SEL = 0x00;                                 //功能选择寄存器选为IO口
    P1DIR = 0x1d;                                //方向选择寄存器0为输入,1输出        
    P1IES |= M_IRQ1;                             //p1.7引脚设置为从高到低跳变中断
    P1IE  |= M_IRQ1;                             //p1.7引脚设置为从高到低跳变中断    
                 
    
    P2SEL = 0x00;                                //功能选择寄存器选为IO口
    P2DIR = 0xdb;                                //选择P2口的某的第1,3,4,6为输出
    P2IES |= M_IRQ2;                             //p1.7引脚设置为从高到低跳变中断
    P2IE  |= M_IRQ2;                             //p1.7引脚设置为从高到低跳变中断    
    P2IES |= TX_SYNC_OUT;                        //p1.7引脚设置为从高到低跳变中断  
 
    P3SEL = 0xf0;                                //p3的低四位为IO口,高四位为串口                    
    P3DIR = 0x53;                                //设置相关引脚的输入输出状态   
    
                          
    P4SEL = 0x01;                                //P4.0 - TB_CCR0  定时器B  
    P4DIR = 0x00;                                //设置p4的引脚为输入状态  
                         
    P5SEL = 0x00;                                //功能选择寄存器选为IO口
    P5DIR = 0xfb;                                //设置相应引脚的输入输出状态    
                       
    P6SEL = 0x03;                         		 // use the a0,a1 Of A/D
    P6DIR = 0xfc;
	WDTCTL = WDT_MDLY_32;                        //8ms看门狗定时

    BCSCTL1 &= ~XT2OFF;                     	 // XT2 = HF XTAL振荡器2开启,
    do 
    {
        IFG1 &= ~OFIFG;                       	// Clear OSCFault flag
        for (i = 0xFF; i > 0; i--);           	// Time for flag to set
    }
    while ((IFG1 & OFIFG) != 0);          		//  等待晶振起振成功              
    BCSCTL2 |= SELM_2;                    		// MCLK = XT2 (safe)   选择系统时钟
    BCSCTL2 |= SELS;             				// SMCLK = XT2CLK      选择外设时钟

	UCTL0 &= ~SWRST;                            //串口0控制寄存器
	URCTL0 = 0;                                 //接收控制寄存器
	UCTL0=0x10;									// 9600bps to tait radio 8位字节长度
    UBR00=0xA4;                                 //N=MCLK/BRATE
    UBR10=0x01;
    UMCTL0=0x00;                                //波特率调整寄存器
    UTCTL0 |= 0x20;                             //选择子系统时钟
    ME1 |= UTXE0;                               //串口0发送使能
    IFG1 = 0;                                   //相应的中断标志清零
    
    UCTL1 &= ~SWRST;
    URCTL1 = 0; 
    UCTL1=0x10;
    UBR01=0x46;			/* 57600bps to GPS,EXTERNAL,MMI1,MMI2,DMIS FIVE CHANNEL */    
    UBR11=0x00;
    UMCTL1=0x00;
    UTCTL1 |= 0x20;
    ME2 |= UTXE1 + URXE1;                       //串口1发送接收使能
    IE2 |= URXIE1;                              //串口1接收中断使能
    IFG2 = 0;                                   //相应的中断标志清零   
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -