关于 F4CubeMX 的应用

2019-07-21 04:49发布

最近,使用F4CubeMX 生成基于F407的USB HOST的代码,的确非常方便,代码质量也很规范整齐。但是在调试USB的驱动过程中遇到一个问题,在文件stm32f4xx_ll_usb.c中,有一个函数如下:
HAL_StatusTypeDef USB_HC_StartXfer(USB_OTG_GlobalTypeDef *USBx, USB_OTG_HCTypeDef *hc, uint8_t dma)
{            ......
          if (hc->xfer_len > 0)
         {
             num_packets = (hc->xfer_len + hc->max_packet - 1) / hc->max_packet; //是否会出现除0的情形
            if (num_packets > max_hc_pkt_count)
           {
    ......
  }
   ......


当时由于程序的错误, 被除数hc->max_packet的值是0,但吊诡的是,这一句居然也能顺利执行,没有激活任何中断。

难道STM32即使除以 0 都可以安然无恙?


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。