打印

怎么debug就跑进了 dummy_handler中断里面了

[复制链接]
2743|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
电子write_cai|  楼主 | 2016-2-17 14:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在初始化函数的时候,没有开启任何中断,程序也就是一个简单的串口接收处理,我上传代码,帮忙看看哪里出了问题?
static struct usart_module ext3_uart_module;

/**
*  Configure UART console.
*/
static void configure_console(void)
{
        struct usart_config usart_conf;
        usart_get_config_defaults(&usart_conf);
        usart_conf.mux_setting = EXT3_UART_SERCOM_MUX_SETTING ;
        usart_conf.pinmux_pad0 = EXT3_UART_SERCOM_PINMUX_PAD0;
        usart_conf.pinmux_pad1 = EXT3_UART_SERCOM_PINMUX_PAD1;
        usart_conf.pinmux_pad2 = EXT3_UART_SERCOM_PINMUX_PAD2;
        usart_conf.pinmux_pad3 = EXT3_UART_SERCOM_PINMUX_PAD3;
        usart_conf.baudrate    = 57600;
        stdio_serial_init(&ext3_uart_module, EXT3_UART_MODULE, &usart_conf);        usart_enable(&ext3_uart_module);
}


int main(void)
{
        struct port_config pin;
        uint8_t *tmp_data;
        system_init();
        /*Configure UART console.*/
        configure_console();
        /* Output example information */
        puts(STRING_HEADER);
    /*Configures PORT for LED0*/
        port_get_config_defaults(&pin);
        pin.direction = PORT_PIN_DIR_OUTPUT;
        port_pin_set_config(LED0_PIN, &pin);
        port_pin_set_output_level(LED0_PIN, LED0_INACTIVE);
        /*main loop*/
        while(1)
        {
                usart_serial_getchar(&ext3_uart_module,tmp_data);
        }
       
}


while循环中的代码
static inline void usart_serial_getchar(
                struct usart_module *const module,
                volatile uint8_t *c)
{
        volatile uint8_t temp = 0;
        SercomUsart *const usart_hw = &(module->hw->USART);
        while(!(usart_hw->INTFLAG.reg & SERCOM_USART_INTFLAG_RXC));
        temp= (volatile uint8_t)(usart_hw->DATA.bit.DATA);
        *c = temp;
}


现在程序跑起来 经常会进入
/**
* \brief Default interrupt handler for unused IRQs.
*/
void Dummy_Handler(void)
{
        while (1) {
        }
}


现在也不知道是什么原因导致的!

相关帖子

沙发
泥土中成长| | 2016-2-22 14:11 | 只看该作者
我也遇到过这个问题,原因是串口的ctrla寄存器里的配置被一条语句清零了。你可以单步调试查看一下SERCOM口寄存器里的模式位是否配置正确。

使用特权

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

本版积分规则

157

主题

1534

帖子

3

粉丝