飞翔的荷兰人号 发表于 2016-11-28 23:14:18

stm8_interrupt_vector.c里的struct interrupt_vector const _vectab[]结构体数组里,对应的中断向量有没有匹配啊

小小小太白 发表于 2016-11-29 09:06:04

本帖最后由 小小小太白 于 2016-11-29 09:08 编辑

飞翔的荷兰人号 发表于 2016-11-28 23:14
stm8_interrupt_vector.c里的struct interrupt_vector const _vectab[]结构体数组里,对应的中断向量有没有 ...
已将RX/TX短接,示波器看到波形,也就是之前说的发送没问题(在之前的工作中,外围设备已完全正确收到CPU发送的指令),发送采用的是查询发送模式。
短接后仍无法进入接收中断。且别的几个中断均能正常进入。
现在可以确定的是,端口复用功能配置、串口时钟、总中断、串口配置应该都没问题。
部分代码如下:
void USART_Config(void)
{
   USART_DeInit(USART1);
   CLK_PeripheralClockConfig(CLK_Peripheral_USART1, ENABLE);         //开时钟
   SYSCFG_REMAPDeInit();                                                            
   SYSCFG_REMAPPinConfig(REMAP_Pin_USART1TxRxPortC,ENABLE);    //复用PC5,PC6为串口
   USART_Init(USART1, (uint32_t)9600, USART_WordLength_8b, USART_StopBits_1,
                   USART_Parity_No, USART_Mode_Tx|USART_Mode_Rx);      GPIO_Init(TXD_GPIO_PORT, TXD_GPIO_PIN, GPIO_Mode_Out_PP_High_Fast);            //高速推挽输出
GPIO_Init(RXD_GPIO_PORT, RXD_GPIO_PIN, GPIO_Mode_In_PU_No_IT);                  //

   USART_ClearITPendingBit(USART1, USART_IT_RXNE);
   USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);          //开接收中断
/* Enable USART */
   USART_Cmd(USART1, ENABLE);
}

struct interrupt_vector const _vectab[] = {
       {0x82, (interrupt_handler_t)_stext}, /* reset */
       {0x82, (interrupt_handler_t)RTC_CSSLSE_IRQHandler},      /* irq4 - RTC/ CSS on LSE interrupt */
       {0x82, (interrupt_handler_t)EXTI0_IRQHandler},                        /* irq8 - External IT PIN0 interrupt */
       {0x82, (interrupt_handler_t)USART1_RX_TIM5_CC_IRQHandler}, /* irq28 */
};

飞翔的荷兰人号 发表于 2016-11-29 16:00:22

小小小太白 发表于 2016-11-29 09:06
已将RX/TX短接,示波器看到波形,也就是之前说的发送没问题(在之前的工作中,外围设备已完全正确收到CPU ...

我看你把struct interrupt_vector const _vectab[]里面没有用到的都删了,这个是中断向量表,没用到的也不能删吧,不过我没试过,你其他中断能正常用吗?还有就是中断服务函数INTERRUPT_HANDLER(UART1_RX_IRQHandler, 18)的第二个参数跟中断向量表是一致的你中断向量表里删了,这里对应上没。

小小小太白 发表于 2016-11-29 16:48:56

飞翔的荷兰人号 发表于 2016-11-29 16:00
我看你把struct interrupt_vector const _vectab[]里面没有用到的都删了,这个是中断向量表,没用到的也 ...

关于删掉东西的问题,我专门测试过,别的中断都正常。应该没问题。而且我是粘贴这些代码时嫌没用的太多看着太乱才删掉的,之前是一直存在的。

zbber 发表于 2016-11-29 21:35:11

没有弄过这个端口复用,帮顶

zero99 发表于 2016-12-5 10:24:15

楼主下次发【求助】啊

じ☆ve沫上,蘤開。灬 发表于 2017-1-11 13:21:29

在发完以后把串口发送中断关掉然后打开串口接收中断接收也是
发完收完关中断下一次发送接收再开中断试试
页: 1 [2]
查看完整版本: STM8L051 串口映射到PC5/PC6接收不进中断