用户工具

站点工具


icore3_arm_hal_41

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
icore3_arm_hal_41 [2020/04/21 16:52]
zgf
icore3_arm_hal_41 [2022/03/18 15:12] (当前版本)
sean
行 2: 行 2:
 |技术支持电话|**0379-69926675-801** ​ ||| |技术支持电话|**0379-69926675-801** ​ |||
 |技术支持邮件|Gingko@vip.163.com ​ ||| |技术支持邮件|Gingko@vip.163.com ​ |||
-|技术论坛|http://​www.eeschool.org ​ ||| 
 ^  版本 ​ ^  日期 ​ ^  作者 ​ ^  修改内容 ​ ^ ^  版本 ​ ^  日期 ​ ^  作者 ​ ^  修改内容 ​ ^
 |  V1.0  |  2020-04-21 ​ |  gingko ​ |  初次建立 ​ | |  V1.0  |  2020-04-21 ​ |  gingko ​ |  初次建立 ​ |
行 10: 行 9:
 \\ \\
 \\ \\
 +
  
 ===== STM32CbeMX教程四十一——DSP_MATH实验 ===== ===== STM32CbeMX教程四十一——DSP_MATH实验 =====
行 111: 行 111:
     * 1、ARM_MATH_CM4     * 1、ARM_MATH_CM4
 {{ :​icore3:​icore3_arm_hal_41_2.png?​direct |}} {{ :​icore3:​icore3_arm_hal_41_2.png?​direct |}}
-    * 2、__CC_ARM+    * 2、_CC_ARM
     * 3、ARM_MATH_MATRIX_CHECK     * 3、ARM_MATH_MATRIX_CHECK
     * 4、ARM_MATH_ROUNDING     * 4、ARM_MATH_ROUNDING
   * 添加方法是打开工程属性设置面板,然后点击”C/​C++“选项卡,在“Preprocessor Symbols“下的”Define:”文本框中进行添加。两个宏之间用“,”隔开。   * 添加方法是打开工程属性设置面板,然后点击”C/​C++“选项卡,在“Preprocessor Symbols“下的”Define:”文本框中进行添加。两个宏之间用“,”隔开。
-  * +
 === 3. 主函数 === === 3. 主函数 ===
 +  * 主函数中通过定时器计时,计算在普通模式下浮点数的计算所用时间与DSP模式下计算浮点数所用时间相对比,将结果打印在屏幕上,显而易见,DSP模式所花费的时间更少。
 <code c> <code c>
 int main(void)  ​ int main(void)  ​
行 151: 行 152:
     /* USER CODE END WHILE */        /* USER CODE END WHILE */   
     /* USER CODE BEGIN 3 */  ​     /* USER CODE BEGIN 3 */  ​
-         timeout = 0;   +    ​timeout = 0;   
-        __HAL_TIM_SET_COUNTER(&​htim3,​0);  ​+    __HAL_TIM_SET_COUNTER(&​htim3,​0);  ​
         for(j = 0;j < 10000;​j++){  ​         for(j = 0;j < 10000;​j++){  ​
             for(i = 0;i < MAX_BLOCKSIZE;​i ++){  ​             for(i = 0;i < MAX_BLOCKSIZE;​i ++){  ​
行 158: 行 159:
                 if(res != 0)error_flag ++;  ​                 if(res != 0)error_flag ++;  ​
             }  ​             }  ​
-+        ​
-time[0] = __HAL_TIM_GET_COUTER(&​htim3)+ timeout*5000;​+        time[0] = __HAL_TIM_GET_COUTER(&​htim3)+ timeout*5000;​
         timeout = 0;  ​         timeout = 0;  ​
         __HAL_TIM_SET_COUNTER(&​htim3,​0);  ​         __HAL_TIM_SET_COUNTER(&​htim3,​0);  ​
行 168: 行 169:
             }  ​             }  ​
         }  ​         }  ​
-  ​time[1] = __HAL_TIM_GET_COUTER(&​htim3)+ timeout*5000;​+        ​time[1] = __HAL_TIM_GET_COUTER(&​htim3)+ timeout*5000;​
         if(error_flag == 0){  ​         if(error_flag == 0){  ​
-            usart4.printf("​*NO DSP MATH LIB runtime:​%0.1fms *USE DSP MATHLIB runtime:​%0.1fms\r",​time[0] / 10, time[1] / 10);  ​+            usart4.printf("​*NO DSP MATH LIB runtime:​%0.1fms *USE DSP MATHLIB runtime:​%0.1fms\r",​time[0]/​10,​time[1]/​10);  ​
             LED_GREEN_ON;  ​             LED_GREEN_ON;  ​
             LED_RED_OFF;  ​             LED_RED_OFF;  ​
行 182: 行 183:
         }  ​         }  ​
   }  ​   }  ​
- 
 </​code>​ </​code>​
-  * 主函数中通过定时器计时,计算在普通模式下浮点数的计算所用时间与DSP模式下计算浮点数所用时间相对比,将结果打印在屏幕上,显而易见,DSP模式所花费的时间更少。+
 === 4. 计算函数 === === 4. 计算函数 ===
 <code c> <code c>
行 239: 行 239:
 === 5. 启动定时器计数模式 === === 5. 启动定时器计数模式 ===
 <code c> <code c>
 +void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)  ​
 +{  ​
 +  if(tim_baseHandle->​Instance==TIM3)  ​
 +  {  ​
 +    __HAL_RCC_TIM3_CLK_ENABLE();  ​
 +    HAL_NVIC_SetPriority(TIM3_IRQn,​ 1, 0);  ​
 +    HAL_NVIC_EnableIRQ(TIM3_IRQn);  ​
 +    HAL_TIM_Base_Start_IT(&​htim3);//​开启定时器中断计数模式
 +  }  ​
 +
  
 </​code>​ </​code>​
icore3_arm_hal_41.1587459166.txt.gz · 最后更改: 2020/04/21 16:52 由 zgf