* 把指定pin设置为指定用途(普通gpio,非gpio) * @gpio gpio引脚编号 * @purpose 用途 */
| 23 | * @purpose 用途 |
| 24 | */ |
| 25 | void pin_set_purpose(unsigned int gpio, pin_purpose_t purpose) |
| 26 | { |
| 27 | volatile unsigned int *gpio_cfgx; // GPIO_CFGx寄存器 |
| 28 | unsigned int pin = GPIO_GET_PIN(gpio); |
| 29 | |
| 30 | gpio_cfgx = gpio_get_cfg_reg(gpio); |
| 31 | if (PIN_PURPOSE_GPIO == purpose) // 引脚用作普通gpio |
| 32 | { |
| 33 | reg_set_one_bit(gpio_cfgx, pin); |
| 34 | } |
| 35 | else // 引脚用作其它功能(非gpio) |
| 36 | { |
| 37 | reg_clr_one_bit(gpio_cfgx, pin); |
| 38 | } |
| 39 | |
| 40 | return ; |
| 41 | } |
| 42 | |
| 43 | |
| 44 |
no test coverage detected