[STM8] STM8新手求指导

[复制链接]
2188|4
 楼主| 银色卡斯基 发表于 2013-7-9 10:21 | 显示全部楼层 |阅读模式
我是个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
trumpxp 发表于 2013-7-9 18:26 | 显示全部楼层
帮楼主顶一个   看看有没有高手能够解决这个问题   顶一个
trumpxp 发表于 2013-7-9 18:27 | 显示全部楼层
问题应该不是很难    你对STM的芯片   了解的可能还是不多   楼主   仔细钻研钻研
 楼主| 银色卡斯基 发表于 2013-7-10 11:56 | 显示全部楼层
单步运行后发现是没有产生中断,明明CR2=2C,SR=C0了啊,为什么不能产生中断?

小Q截图-20130710115339.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

13

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部