RTduino / RTduino

Arduino Ecosystem Compatibility Layer for RT-Thread | RT-Thread的Arduino生态兼容层
https://docs.rtduino.com
Other
95 stars 21 forks source link

[update] 支持引脚功能切换 #69

Closed liYony closed 1 year ago

liYony commented 1 year ago

使用参考示例:

void pins_switch_to_spi(const char *bus_name)
{
    if(!rt_strcmp(bus_name, "spi1"))
    {
        __HAL_RCC_TIM1_CLK_DISABLE();
        HAL_GPIO_DeInit(GPIOA, GPIO_PIN_7);

        GPIO_InitTypeDef GPIO_InitStruct = {0};
        __HAL_RCC_SPI1_CLK_ENABLE();
        __HAL_RCC_GPIOA_CLK_ENABLE();
        /**SPI1 GPIO Configuration
        PA5     ------> SPI1_SCK
        PA6     ------> SPI1_MISO
        PA7     ------> SPI1_MOSI
        */
        GPIO_InitStruct.Pin = GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7;
        GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
        GPIO_InitStruct.Pull = GPIO_NOPULL;
        GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
        GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
        HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
    }
}