最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

DSPIC微控制器实现串口通讯及端口控制

来源:动视网 责编:小OO 时间:2025-09-25 12:47:20
文档

DSPIC微控制器实现串口通讯及端口控制

/*************************************************************************************************Function:微波电源开关通道切换指令板程序**********************************************************************************************/#include/***********************
推荐度:
导读/*************************************************************************************************Function:微波电源开关通道切换指令板程序**********************************************************************************************/#include/***********************
/**********************************************************************************************

*

*Function: 微波电源开关通道切换指令板程序

**********************************************************************************************/

#include

/**********************************************************************************************

*

* Note: 数组、变量和指针等的声明

* Function:

*

**********************************************************************************************/

int receive_data[100];

int OK[4]={0x0023,0x004F,0x004B,0x0024};

int send_data1[3]={0x0023,0x0031,0x0024};

int send_data2[3]={0x0023,0x0032,0x0024};

int send_data3[3]={0x0023,0x0033,0x0024};

int send_data4[3]={0x0023,0x0034,0x0024};

int send_data5[3]={0x0023,0x0035,0x0024};

int send_data6[3]={0x0023,0x0036,0x0024};

int send_data7[3]={0x0023,0x0037,0x0024};

int send_data8[3]={0x0023,0x0038,0x0024};

int *send;

int receive_counter=0;

int send_length=0;

int send_counter=0;

int receive_flag=0;

int resend_flag=0;

int OK_flag=0; 

int KEY_mode=1;

/**********************************************************************************************

*

* Note: 函数声明

* Function:

*

**********************************************************************************************/

void __attribute__((__interrupt__)) _U1RXInterrupt(void);

void __attribute__((__interrupt__)) _U1TXInterrupt(void); 

void __attribute__((__interrupt__)) _T1Interrupt(void);

void __attribute__((__interrupt__)) _CNInterrupt(void); 

void delay(int z);  

void PORT_Init(void);

void TIMER_Init(void);

void UART_Init(void);

/**********************************************************************************************

*

* Note: 主函数

* Function: 完成各模块的初始化,等待中断,

*

**********************************************************************************************/ 

int main(void)

    TIMER_Init();                              

            IFS0bits.U1TXIF = 1;               

            resend_flag=0;     

            switch(KEY_mode)                                         //选择开关状态

          {                           

             PORTFbits.RF6 = 1;                      

          {                           

             PORTFbits.RF6 = 0;                      

          {                           

             PORTFbits.RF6 = 1;                      

          {                           

             PORTFbits.RF6 = 0;                      

          }      

    }     

}

/**********************************************************************************************

*

* Note: UART接收中断服务程序ISR

* Function: 完成接收到的数据的存储和判断,并置位相应的标志位

*

{

     IFS0bits.U1RXIF = 0;                                      //清零接收中断标志

        receive_data[receive_counter]=U1RXREG;                    //接收数据

        receive_counter++;   

        if(receive_data[receive_counter-1]==0x0024)                                       //接收完成?

           {                                                          //置位接收完成标志

              OK_flag=1;                                             //接收到OK

           }   

           receive_counter=0;                                    //归零接收计数器

     }                

{

     IFS0bits.U1TXIF = 0;                                //清零发送中断标志

        send_counter=0;                                    //归零发送计数器

 

     U1TXREG=*(send+send_counter);                  //发送数据

 

/**********************************************************************************************

*

* Note: Timer1中断服务程序ISR

* Function: 发送开关切换指令

*

{      

 

     if(PORTFbits.RF1==0)                                    //判断按键是否按下

     {                                        

           switch(KEY_mode)                                         //选择开关状态

        }   

     }          

}

/**********************************************************************************************

*

* Note: UART接收引脚电平变化中断服务程序ISR,以及延时子程序

* Function: 完成接收到的数据的存储和判断,并置位相应的标志位

*

**********************************************************************************************/

{

     IFS0bits.CNIF = 0;                                        //清除中断标志

     if(PORTFbits.RF4==0)                                         //判断按键是否按下

           KEY_mode++;                                           //开关模式加1

{

}

/**********************************************************************************************

*

* ------------------------------------------END-----------------------------------------------

**********************************************************************************************/

文档

DSPIC微控制器实现串口通讯及端口控制

/*************************************************************************************************Function:微波电源开关通道切换指令板程序**********************************************************************************************/#include/***********************
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top