打印

M054LBN串口功能为何不中断

[复制链接]
1663|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huzhiyang|  楼主 | 2013-5-16 16:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 huzhiyang 于 2013-5-18 08:02 编辑

    最近在用新塘的M054LBN的芯片,用的是3.3V的485芯片ADM3072E。不知道为什么,串口就是无法中断,还请各位用过的指教下:
#define UART0_Clock_EN    APBCLK |= UART0_CLKEN   // Enable UART0 clock  
#define RX_POINTER_MAKS 0x3f<<8
unsigned char a[7] ={1,2,3,4,5,6,7};
//*********************************************************************************
void Send_byte_Data(unsigned char c)
{
    UA0_THR =(unsigned char)c;
    while ((UA0_FSR&TX_EMPTY) == 0);
}
//*********************************************************************************
void send_bytes_data(unsigned char* s)
{
   do
   {
     Send_byte_Data(*s);
   }while(*(s++) != '\0');
}
//*********************************************************************************
unsigned char Receive_Data(void)
{
   while ((UA0_FSR&RX_EMPTY) != 0x00); //check Rx Empty
   return ((unsigned char)UA0_RBR);
}
//*********************************************************************************
void UART0_IRQHandler(void)
{
   led0_pwoer_on;
}
//*********************************************************************************
void UART_Init(void)
{


    // Step 1. GPIO initial
   
    P3_MFP &= ~(P31_TXD0 | P30_RXD0);   
    P3_MFP |= (TXD0 | RXD0);   


    IPRSTC2 |= UART0_RST;   //Reset UART0  
    IPRSTC2 &= ~UART0_RST;  //Reset end  


    // Step 2. Enable and Select UART clock source
    UART0_Clock_EN;
        CLKSEL1 |= (3<<24);  //串口时钟源选用片内22M晶振       
    CLKDIV  &= ~(15<<8);
       
    // Step 3. Select Operation mode
    UA0_FCR |= TX_RST;      //Tx FIFO Reset  
    UA0_FCR |= RX_RST;      //Rx FIFO Reset  
    UA0_FCR |= RFITL_1;     //设置为1个字节触发中断  


    UA0_LCR &= (~SPE);  
    UA0_LCR &= (~EPE);  
    UA0_LCR &= (~PBE);      //Parity Bit Disable  校验禁止  


    UA0_LCR &= ~WLS;  
    UA0_LCR |= WL_8BIT;     ///8位长度  
    UA0_LCR &= NSB_ONE;     ///1位停止位


   UA0_BAUD |= DIV_X_EN;        //Mode2:DIV_X_EN = 1
   UA0_BAUD |= DIV_X_ONE;        //Mode2:DIV_X_ONE =1
  UA0_BAUD |= ((22118400 / 4800) -2);


   send_bytes_data(a);
    UA0_IER |= (RDA_IEN | THRE_IEN | RLS_IEN);//先开启串口接收,发送,RLS中断
    NVIC_ISER = UART0_INT;                                    //然后在IRQ0~IRQ31中允许12号中断,也就是UART0中断
   
}
不知道问题在哪里,就是不产生中断,点不亮LED灯

相关帖子

沙发
rejoice818| | 2013-5-25 09:16 | 只看该作者
求一个串口发送中断例程

使用特权

评论回复
板凳
huzhiyang|  楼主 | 2013-5-31 08:42 | 只看该作者
rejoice818 发表于 2013-5-25 09:16
求一个串口发送中断例程

例程里面也是这么做的,我还使用了新塘的在线配置软件,我都是照着做的,收发都没问题,就是不能开中断,开了中断之后连收发都不行了,更不提产生中断,请教新塘的技术支持,就只是叫我看例程,我想说,我要是看例程能解决,我找你干叼啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

190

帖子

2

粉丝