在keil中使用assert時會進hardfalut雖然可以知道錯誤訊息。
參考st的 bsp利用定義,打印出在那個檔那一行錯。
void assert_failed(uint8_t* file, uint32_t line)
{
printf("Wrong parameters value: file %s on line %d\r\n", file, line);
while(1);
}
#define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__))
int main(void)
{
int32_t i32Err=5;
assert_param(i32Err==0);
while(1
}
|