STM32
直播中

石飞鹏

7年用户 1013经验值
私信 关注
[问答]

stm8l051F3串口接收采用中断方式,下发一个字节直接复位,debug下直接出现仿真器断线的原因?

stm8l051F3,串口接收采用中断方式,下发一个字节直接复位
debug下直接出现仿真器断线,如下:

串口发送采用查询方式,向PC发数据没有问题。
USART初始化代码如下:
void uart_init(void)
{
    CLK_PeripheralClockConfig(UART_CLK, ENABLE);  
    GPIO_Init(UART_GPIOx, UART_PIN_TX, GPIO_Mode_Out_PP_High_Slow);//TXD
    GPIO_Init(UART_GPIOx, UART_PIN_RX, GPIO_Mode_In_PU_No_IT);//RXD
    GPIO_ExternalPullUpConfig(UART_GPIOx, UART_PIN_TX, ENABLE);   
    GPIO_ExternalPullUpConfig(UART_GPIOx, UART_PIN_RX, ENABLE);
    USART_DeInit(UART_DEVICE);
    USART_Init(UART_DEVICE, (u32)BAUD_RATE, USART_WordLength_8b, USART_StopBits_1,
            USART_Parity_No, USART_Mode_Tx|USART_Mode_Rx);
    USART_ClearITPendingBit(UART_DEVICE, USART_IT_RXNE);
    USART_ITConfig(UART_DEVICE, USART_IT_RXNE, ENABLE);
    USART_Cmd(UART_DEVICE, ENABLE);
}
中断处理函数:
INTERRUPT_HANDLER(USART1_RX_IRQHandler, 28)
{
    u8 ch;
    ch = USART_ReceiveData8(UART_DEVICE);   
    USART_SendData8(UART_DEVICE, ch);
}
现在不清楚哪里出了问题,初步怀疑中断配置,或栈空间分配问题,但是看了许多资料和修改了关于中断和栈的配置问题依然没有解决。

回帖(1)

王凤英

2024-4-18 15:59:13
你中断里没有清除中断请求位,会导致类似死机现象。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分