硬汉嵌入式论坛

 找回密码
 立即注册
查看: 992|回复: 1
收起左侧

实现后缀用宏定义的值,宏嵌套和拼接求助?

[复制链接]

210

主题

1044

回帖

1684

积分

至尊会员

More we do, more we can do.

积分
1684
发表于 2021-7-31 16:40:48 | 显示全部楼层 |阅读模式
本帖最后由 emwin 于 2021-7-31 17:31 编辑
  1. #include <stdio.h>

  2. #define DMA_DMAIF_TCIF0         100
  3. #define DMA_DMAIF_TEIF0         200

  4. #define UART4_RXDMA_CH_NUM      0       /*"!!!!串口配置的DMA通道号!!!!"*/

  5. #define UART4_RX_DMA_CH_TXIF(num)     DMA_DMAIF_TCIF##num
  6. #define UART4_RX_DMA_CH_TEIF(num)     DMA_DMAIF_TEIF##num

  7. int main()
  8. {
  9.     printf("%d, %d", UART4_RX_DMA_CH_TXIF(0), UART4_RX_DMA_CH_TEIF(0));
  10.     return 0;
  11. }
复制代码
我想简化切换DMA通道的代码修改,改UART4_RXDMA_CH_NUM怎么让UART4_RX_DMA_CH_TXIF(UART4_RXDMA_CH_NUM)得到DMA_DMAIF_TCIF0
已解决

  1. #include <stdio.h>

  2. #define DMA_DMAIF_TCIF0         100
  3. #define DMA_DMAIF_TEIF0         200
  4. #define UART4_RXDMA_CH_NUM      0       /*"!!!!串口配置的DMA通道号!!!!"*/

  5. #define UART4_RX_DMA_TCIF(x)    PARAM_TC(x)
  6. #define UART4_RX_DMA_TEIF(x)    PARAM_TE(x)

  7. #define PARAM_TC(num)     DMA_DMAIF_TCIF##num
  8. #define PARAM_TE(num)     DMA_DMAIF_TEIF##num

  9. int main()
  10. {
  11.     printf("%d %d", UART4_RX_DMA_TCIF(UART4_RXDMA_CH_NUM), UART4_RX_DMA_TEIF(UART4_RXDMA_CH_NUM));
  12.     return 0;
  13. }
复制代码




回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106820
QQ
发表于 2021-7-31 17:55:18 | 显示全部楼层
这种玩法,CMSIS-Driver里面全是这种,楼主可以借鉴完善下。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-6 01:31 , Processed in 0.266745 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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