初级会员

- 积分
- 66
- 金钱
- 66
- 注册时间
- 2021-1-8
- 在线时间
- 24 小时
|
1金钱
最近再用STM32H745ZI,双核 一个M7 一个M4,有延时需要,正好以前用F407写过微妙延时函数所以直接拿来用了,然后M4只要一进到延时就堵死,代码如下,有没有大佬参考一下看看可能是哪里出了问题?板子是官方的NUCLEO,APB1的TIM是200M时钟- void MX_TIM7_Init(void)
- {
- TIM_MasterConfigTypeDef sMasterConfig = {0};
- htim7.Instance = TIM7;
- htim7.Init.Prescaler = 200 - 1;
- htim7.Init.CounterMode = TIM_COUNTERMODE_UP;
- htim7.Init.Period = 1;
- htim7.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
- if (HAL_TIM_Base_Init(&htim7) != HAL_OK)
- {
- Error_Handler();
- }
- sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
- sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
- if (HAL_TIMEx_MasterConfigSynchronization(&htim7, &sMasterConfig) != HAL_OK)
- {
- Error_Handler();
- }
- }
- void delay_us(uint32_t nus)
- {
- uint16_t differ = 0xffff - nus - 5;
- HAL_TIM_Base_Start(&htim7);
- __HAL_TIM_SetCounter(&htim7, differ);
- while(differ < 0xffff - 5)
- {
- differ = __HAL_TIM_GetCounter(&htim7);
- }
- HAL_TIM_Base_Stop(&htim7);
- }
复制代码
|
|