初级会员

- 积分
- 77
- 金钱
- 77
- 注册时间
- 2014-8-24
- 在线时间
- 15 小时
|
10金钱
本帖最后由 zzk123 于 2018-9-21 12:05 编辑
#define COMM_PC // ---------------------------------------------------------------------------------------------[1]
#if defined(COMM_PC)
#define MASTER_COMM_PC 4 //-----------------------------------------------------[2]
#elif defined(MAX3485_COMM_PC)
#define MASTER_COMM_PC 3
#elif defined(MAX3232_COMM_PC)
#define MASTER_COMM_PC 1
#else
#define MASTER_COMM_PC 4
#endif
#if (MASTER_COMM_PC== 1)
#define PTZCOMMPC_USARTx USART1 //--------------------------------------------------------------[3]
#define PTZCOMMPC_NVIC_IRQChannel USART1_IRQn
#elif (MASTER_COMM_PC== 4)
#define PTZCOMMPC_USARTx UART4//-------------------------------------------------------------------[3]
#define PTZCOMMPC_NVIC_IRQChannel UART4_IRQn
#else
#define PTZCOMMPC_USARTx USART2
#define PTZCOMMPC_NVIC_IRQChannel USART2_IRQn
#endif
背景:因为在项目中,使用的接口会有RS232或者RS485接口,所以想通过预编译指令来条件选择
本来是想要的执行顺序是 【1】-->【2】-->【3】
可是编译完成后,Go to Definition “PTZCOMMPC_USARTx”老是执行 绿色的代码【3】;即 【1】-->【2】-->【3】
//if(USART_GetITStatus(PTZCOMMPC_USARTx, USART_IT_RXNE) != RESET)
请问各位大神,这是什么原因????
补充说明:这部分代码先是裸机下跑没问题,移植到ucosiii出现了这种问题
|
|