LPC2378上用ST16C2550扩展串口使用GPIO中断

发布者:Jinyu2022最新更新时间:2019-01-16 来源: eefocus关键字:LPC2378m  ST16C2550  扩展串口  GPIO中断 手机看文章 扫描二维码
随时随地手机看文章

LPC2378外部中断管脚P2.10~P2.13可用为外部中断,也可以用为GPIO中断。


在LPC2378上用ST16C2550芯片扩展串口时,两种中断都可以用,但看LPC2378文档时,外部中断那块讲的比较晦涩,GPIO中断倒是很明白,我就用GPIO中断去操作,非常好,中断收发通信成功。代码如下,供大家参考:


 /*********************中断处理函数************************/


void ST16_Handler (void) __irq                

{

    BYTE status; 

    IENABLE;    /* handles nested interrupt */ 

    status = EUART_ADDR_ISR;

    

    if ( (status&0x06) == 0x04 ) /* 接收数据 */

    {

   while( EUART_ADDR_LSR & 0x01 )/* Receive Data Ready */ 

{

    ST16_Buffer[ST16_Count] = EUART_ADDR_RHR;

    ST16_Count++;

    if ( ST16_Count == BUFSIZE )

    {

ST16_Count = 0;

    }

}

    }

 

    else if ( (status&0x06) == 0x02 ) /* 发送数据 */

    {

if ( EUART_ADDR_LSR & 0x20 )

{

    ST16_TxEmpty = 1;


              /********此处可添加发送数据处理程序********/

}

else

{

    ST16_TxEmpty = 0;

}

    }   

    IDISABLE;

IO2_INT_CLR = 1<<10;/*清除IO中断*/

    VICVectAddr = 0x00000000; /* 清除向量中断 */


}


/*******************GPIO中断初始化***********************/


int main (void) 


   EMCInit();

   ST16_Init(115200);

   /*中断设置*/

   IO2_INT_CLR=0xffffffff;      

   IO2_INT_EN_R=1<<10;   //GPIO上升沿中断,中断管脚连接到P2.10

   VICVectCntl17=0x00000000; //中断优先级

   VICVectAddr17=(unsigned)ST16_Handler; //中断向量地址


}

关键字:LPC2378m  ST16C2550  扩展串口  GPIO中断 引用地址:LPC2378上用ST16C2550扩展串口使用GPIO中断

上一篇:STM32Cube的时钟配置步骤
下一篇:STM32F1系列单片机硬件设计方法

推荐阅读最新更新时间:2024-03-16 16:22

LPC1788的外部中断和GPIO中断
首先是gpio中断,这一点和1768不同,1768使用的中断时和eint3共用中断通道,到了1788,专门为gpio开辟了中断 #ifndef __JOYPAD_H_ #define __JOYPAD_H_ #include sys.h #include delay.h #define JOYPAD_A 0X01 #define JOYPAD_B 0X02 #define JOYPAD_C 0X03 #define JOYPAD_D 0X04 #define JOYPAD_ENTER 0X05 extern u8 joypadValue; void Joypad_Scan_Init(vo
[单片机]
STM8L51X gpio中断
本文采用官方的库函数接口实现STM8L51X gpio中断 STM8L51X的中断向量入口函数都放在stm8l51x_it.c里面。 不同的中断对应的中断号如下(在stm8l51x_itc.h里面): typedef enum { FLASH_IRQn = (uint8_t)1, /*! Flashinterrupt */ DMA1_CHANNEL0_1_IRQn = (uint8_t)2, /*! DMAChannels 0/1 */ DMA1_CHANNEL2_3_IRQn = (uint8_t)3, /*! DMACha
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved