twodiamond 发表于 2014-9-12 12:04:46

关于 F4CubeMX 的应用

最近,使用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 都可以安然无恙?
 
 
 
 

五哥1 发表于 2018-6-5 23:34:29

这里的除法不是严格意义的除法,
页: [1]
查看完整版本: 关于 F4CubeMX 的应用