1 wevsty 2018-07-05 18:48:48 +08:00 #define UART(N) LPC_UART##N 这样就行了。 你使用 UART(1)的时候编译器会自动帮你替换成 LPC_UART1。 |
2 CannotGoogle 2018-07-05 19:00:44 +08:00 宏的作用只能到在预处理阶段,可能数组会比较方便: static lpc_uart[] = {LPC_UART0, LPC_UART1, LPC_UART2, ...}; lpc_uart[port] = xxx; |
3 CannotGoogle 2018-07-05 19:01:48 +08:00 写错,static 后面忘加类型了。 |
4 eltonto187 OP @CannotGoogle 文中有提到,每个 LPC_UART 的类型不同,数组已试过,无效 |
5 eltonto187 OP @wevsty 回去试下,如果好好使,就太感谢了 |
![]() | 6 changnet 2018-07-05 19:38:06 +08:00 via Android 一定要用宏的话,wevsty 正解。但是这样逻辑不应该是用数组来解决的么,即使类型不一样,换种思路,用 union 什么的也可以处理。你用宏相当于硬编码。 如果是老代码定的规则,当我没说 |
7 duzhe0 2018-07-05 19:39:03 +08:00 C 的宏是没有循环的 |