之前也遇到过这个问题后来把HAL_Delay 去掉了. 然后发现不行, 还是得有它.不然发串口数据发的太快会乱掉. 得慢点发. 然后调试到HAL_Delay()方法的内部发现 HAL_GetTick( )函数一直返回 __weak void HAL_Delay(uint32_t Delay) { uint32_t tickstart = HAL_GetTick(); uint32_t wait = Delay; /* A...
发现我使用库里的延时程序HAL_Delay()时,会卡死在里面。 根据程序,进入到这个延时程序后 ,发现HAL_GetTick()取来的数字一直没有变化,才发现是因为 1 2 3 4 __weak uint32_t HAL_GetTick(void) { returnuwTick; } 程序中的值没有变化,搜uwTick后发现,其值由另一个程序进行处理, __weakvoidHAL_IncTick...
if(((HAL_GetTick()-tickstart) >= Timeout) || (Timeout == 0U))//卡在此句2 { /* ...
78.tickstart = HAL_GetTick(); 79.firstData=1; 80.} 81.#else 82.//如果是不定长接收,这个超时时间改为单byte的超时时间,如115200下一个byte通信时间大概为0.086ms 83.//同时代码改为每个byte都更新超时计时开始时间。理论上可以一次性接收你能开空间大小的帧长。
但是操作 system tick timer 貌似和 HAL I2C 使用的HAL_GetTick()冲突了,会导致卡死在I2C_WaitOnMasterAddressFlagUntilTimeout
12__weak void HAL_Delay(uint32_t Delay)13{ 14 uint32_t tickstart = HAL_GetTick();15 ...
发现我使用库里的延时程序HAL_Delay()时,会卡死在里面。根据程序,进入到这个延时程序后 ,发现HAL_GetTick()取来的数字一直没有变化,才发现是因为 __weak uint32_t HAL_GetTick(v... egren 0 12327 stm32 HAL库函数——GPIO 2019-12-11 21:10 − void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO...
__weak uint32_t HAL_GetTick(void) {return uwTick; } __weak void HAL_Delay(uint32_t Delay) {uint32_t tickstart = HAL_GetTick(); uint32_t wait = Delay; /* Add a freq to guarantee minimum wait */ if (wait < HAL_MAX_DELAY) ...
void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) { /* Prevent unused argument(s) compilation warning */ if(huart->ErrorCode&HAL_UART_ERROR_ORE) { __HAL_UART_CLEAR_OREFLAG(huart); } /* NOTE : This function should not be modified, when the callback is needed, ...
终于找到了,我现在遇到的问题与你基本一样,估计这个sd卡的 dma 功能 他们都没有测试就放出来,哎,stm太不负责了啊 说说我的问题,目前我的可以进入到下面的两个函数中,回调函数/** * @brief Tx Transfer completed callbacks */ void HAL_SD_TxCpltCallback(SD_HandleTypeDef *hsd)...