打印
[STM8]

STM8新手求指导

[复制链接]
1710|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我是个STM8初学者,在用RS232通信时老进不去中断,用的是IAR,基本上仿照风驰的例子来做,仿真没问题,就是进不去中断,求指导!!! 版面有限,前面的初始化我就不写了,真心求指导!!
int main(void)
{
   init_devices();
   while (1)  
   {
     u8 k;
     k = GPIO_ReadInputData(GPIOD);
     UART1_SendByte(k);
     Delay(0xffff);
   }
}


#pragma vector=0x14       //UART1_RX
__interrupt void UART1_RX_IRQHandler(void)
{
  u8 Res,port;
  if(UART1_GetITStatus(UART1_IT_RXNE )!= RESET)  
  {/*接收中断(接收到的数据必须是 结尾)*/
    Res =UART1_ReceiveData8();
    /*(USART1->DR);读取接收到的数据,当读完数据后自动取消RXNE的中断标志位*/
      if(Res>=0x0f)
      {
        port = GPIO_ReadInputData(GPIOD);
        UART1_SendByte(port);
      }
  }
}


void init_devices(void)
{
  asm("sim");//关全局中断  
  /* Configures clocks */
  CLK_Configuration();
  /* Configures GPIOs */
  GPIO_Configuration();
  Uart_Init();
  //EXTI2_init();
  asm("rim");//开全局中断
}

void Delay(u16 ms)
{
  for( ;ms > 0;ms--)
  {
      for(int k = 327;k > 0;k--);
  }
}

void CLK_Configuration(void)
{  
  /* Fmaster = 16MHz */  
  /*!<Set High speed internal clock  */
  CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
}

void GPIO_Configuration(void)
{
  GPIO_DeInit(GPIOD);
  GPIO_Init(GPIOD, GPIO_PIN_4, GPIO_MODE_IN_PU_NO_IT);
  GPIO_Init(GPIOD, GPIO_PIN_5, GPIO_MODE_IN_PU_NO_IT);
  GPIO_Init(GPIOD, GPIO_PIN_6, GPIO_MODE_IN_PU_NO_IT);
  GPIO_Init(GPIOD, GPIO_PIN_7, GPIO_MODE_IN_PU_NO_IT);
}
沙发
银色卡斯基|  楼主 | 2013-7-9 10:26 | 只看该作者
配置见附件图,唯一不一样的就是这个了,新手求解析!!

小Q截图-20130709102245.png (33.78 KB )

小Q截图-20130709102245.png

使用特权

评论回复
板凳
trumpxp| | 2013-7-9 18:26 | 只看该作者
帮楼主顶一个   看看有没有高手能够解决这个问题   顶一个

使用特权

评论回复
地板
trumpxp| | 2013-7-9 18:27 | 只看该作者
问题应该不是很难    你对STM的芯片   了解的可能还是不多   楼主   仔细钻研钻研

使用特权

评论回复
5
银色卡斯基|  楼主 | 2013-7-10 11:56 | 只看该作者
单步运行后发现是没有产生中断,明明CR2=2C,SR=C0了啊,为什么不能产生中断?

小Q截图-20130710115339.png (3.68 KB )

小Q截图-20130710115339.png

使用特权

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

本版积分规则

2

主题

13

帖子

0

粉丝