使用W806串口UART2,为什么一旦发送就出现设备中断?

发布于 2023-02-23 00:30:32

使用W806的UART2,修改main.c 更改UART1修改UART2,然后在wm_hal_msp.c修改管脚与与中断如下:
void HAL_UART_MspInit(UART_HandleTypeDef* huart)
{

if (huart->Instance == UART2)
{
    __HAL_RCC_UART2_CLK_ENABLE();
    __HAL_RCC_GPIO_CLK_ENABLE();
    
//    PB6: UART2_TX
//    PB7: UART2_RX
    __HAL_AFIO_REMAP_UART2_TX(GPIOB, **GPIO_PIN_2**);
    __HAL_AFIO_REMAP_UART2_RX(GPIOB, **GPIO_PIN_3**);
    HAL_NVIC_SetPriority(**UART2_5_IRQn**, 0);
    HAL_NVIC_EnableIRQ(UART2_5_IRQn);
}

}

void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
{

if (huart->Instance == UART2)
{
    __HAL_RCC_UART2_CLK_DISABLE();
    HAL_GPIO_DeInit(**GPIOB, GPIO_PIN_2|GPIO_PIN_3**);
}

}
从uart2发送,然后出现错误,在UART0出现错误信息。
UART0打印的信息CPU
Exception : 51
r0: 00000000 r1: 00000213 r2: 40010a00 r3: 00000000 r4: 200020c0
r5: 00000000 r6: 00000000 r7: 200101ac r8: 18ff41b7 r9: 0e7e06af
r10: c89d0b11 r11: 2315a0cc r12: 00000003 r13: ffff00ff r14: 200010ec

查看更多

关注者
0
被浏览
954
ZYQ
ZYQ 2023-02-23
我已不再支持W80X任何相关问题的回复,请大家不要私信,有问题找 isme 谢谢

wm_it.c 也得改,

2 个回答
yulianjn
yulianjn 2023-02-23
这家伙很懒,什么也没写!

已经修改过了是这样吗?

include "wm_hal.h"

define readl(addr) ({unsigned int __v = ((volatile unsigned int ) (addr)); __v;})

__attribute__((isr)) void CORET_IRQHandler(void)
{

readl(0xE000E010);
HAL_IncTick();

}

extern UART_HandleTypeDef huart2;

__attribute__((isr)) void UART2_4_IRQHandler(void)
{

HAL_UART_IRQHandler(&huart2);

}

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览