OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3320|回复: 6

STM32断言问题??

[复制链接]

5

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2017-6-1
在线时间
14 小时
发表于 2017-7-25 09:04:52 | 显示全部楼层 |阅读模式
1金钱
我知道如果不取消下面的宏定义
/* #define USE_FULL_ASSERT    1 */

#ifdef  USE_FULL_ASSERT
/**
  * @brief  The assert_param macro is used for function's parameters check.
  * @param  expr: If expr is false, it calls assert_failed function
  *         which reports the name of the source file and the source
  *         line number of the call that failed.
  *         If expr is true, it returns no value.
  * @retval None
  */
  #define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__))
/* Exported functions ------------------------------------------------------- */
  void assert_failed(uint8_t* file, uint32_t line);
#else
  #define assert_param(expr) ((void)0)
#endif /* USE_FULL_ASSERT */

编译的就是#define      assert_param(expr)      ((void)0)
也就是说不进行断言错误检查

正点原子的代码sys.c里面
#ifdef  USE_FULL_ASSERT
//当编译提示出错的时候此函数用来报告错误的文件和所在行
//file:指向源文件
//line:指向在文件中的行数
void assert_failed(uint8_t* file, uint32_t line)
{
        while (1)
        {
        }
}
#endif
也不会进行断言错误检查


可是为什么我的代码有断言检查呢!!我没有定义USE_FULL_ASSERT
我再所有的文件中搜索,也没有定义USE_FULL_ASSERT
在c++选项卡也没有定义USE_FULL_ASSERT


奇怪,我的代码为什么还可以对断言的错误进行检查呢?????

最佳答案

查看完整内容[请看2#楼]

麻烦看清楚了,这个错误提示是什么???错误是undefined,提示你NVIC_PRIORITYGROUP_10未定义!!!!跟断言没任何关系!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-7-25 09:04:53 | 显示全部楼层
本帖最后由 zuozhongkai 于 2017-7-25 09:54 编辑

麻烦看清楚了,这个错误提示是什么???错误是undefined,提示你NVIC_PRIORITYGROUP_10未定义!!!!跟断言没任何关系!
开往春天的手扶拖拉机
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-7-25 09:18:38 | 显示全部楼层
你怎么判断的你的代码进行了断言检查?
回复

使用道具 举报

5

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2017-6-1
在线时间
14 小时
 楼主| 发表于 2017-7-25 09:18:47 | 显示全部楼层
帮顶a~!!
回复

使用道具 举报

5

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2017-6-1
在线时间
14 小时
 楼主| 发表于 2017-7-25 09:22:07 | 显示全部楼层
zuozhongkai 发表于 2017-7-25 09:18
你怎么判断的你的代码进行了断言检查?

例如我输入一个错误的中断分组
  HAL_NVIC_SetPriorityGrouping( NVIC_PRIORITYGROUP_10 );
1.PNG
回复

使用道具 举报

5

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2017-6-1
在线时间
14 小时
 楼主| 发表于 2017-7-25 10:00:52 | 显示全部楼层
本帖最后由 罗马的猫 于 2017-7-25 10:20 编辑
zuozhongkai 发表于 2017-7-25 09:52
麻烦看清楚了,这个错误提示是什么???错误是undefined,提示你NVIC_PRIORITYGROUP_10未定义!!!!跟断 ...

谢谢你啊!!
回复

使用道具 举报

5

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2017-6-1
在线时间
14 小时
 楼主| 发表于 2017-7-25 10:31:02 | 显示全部楼层
本帖最后由 罗马的猫 于 2017-7-25 10:40 编辑

hello world 我C语言没学好

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-12-23 12:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表