参考原文: https://www.cnblogs.com/leo0621/p/9435794.html
本文绝大部份采用原文编辑, 作部分完善修改, 资料仅用于学习参考用途, 如汲侵权行为, 请留言后将删除~
在STM32的固件库和提供的例程中,到处都可以见到assert_param()的使用。如果打开任何一个例程中的stm32f10x_conf.h文件,就可以看到实际上assert_param是一个宏定义;
在固件库中,它的作用就是检测传递给函数的参数是否是有效的参数。
举例说明:
assert_param ( IS_USART_ALL_PERIPH(USARTx) );
这句代码用于检查参数USARTx是否有效,其中IS_USART_ALL_PERIPH(USARTx)是一个宏定义,如下:
#define IS_USART_ALL_PERIPH(PERIPH) (((PERIPH) == USART1) || \
((PERIPH) == USART2) || \
((PERIPH) == USART3) || \
((PERIPH) == USART4) || \
((PERIPH) == USART5) || \
((PERIPH) == USART6)


2731

被折叠的 条评论
为什么被折叠?



