4ceffbf06a
1.修改drv_gpio.c:R_IOPORT_Open()函数只需执行一次,修改位置为init时执行 2.默认HMI-Board使能rtduino后支持soft spi,通过switch_pwm可切换为pwm功能
72 lines
2.5 KiB
C
72 lines
2.5 KiB
C
/*
|
|
* Copyright (c) 2006-2023, RT-Thread Development Team
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*
|
|
* Change Logs:
|
|
* Date Author Notes
|
|
* 2023-10-28 Wangyuqiang first version
|
|
*/
|
|
|
|
#include <Arduino.h>
|
|
#include "pins_arduino.h"
|
|
|
|
#include <rtthread.h>
|
|
#include "hal_data.h"
|
|
#include <rtdevice.h>
|
|
|
|
/*
|
|
* {Arduino Pin, RT-Thread Pin [, Device Name, Channel]}
|
|
* [] means optional
|
|
* Digital pins must NOT give the device name and channel.
|
|
* Analog pins MUST give the device name and channel(ADC, PWM or DAC).
|
|
* Arduino Pin must keep in sequence.
|
|
*/
|
|
const pin_map_t pin_map_table[]=
|
|
{
|
|
{D0, BSP_IO_PORT_02_PIN_06, "uart4"}, /* Serial4-RX */
|
|
{D1, BSP_IO_PORT_02_PIN_05, "uart4"}, /* Serial4-TX */
|
|
{D2, BSP_IO_PORT_00_PIN_08},
|
|
{D3, BSP_IO_PORT_05_PIN_06},
|
|
{D4, BSP_IO_PORT_06_PIN_03},
|
|
{D5, BSP_IO_PORT_06_PIN_04, "pwm8", 0},
|
|
{D6, BSP_IO_PORT_06_PIN_05, "pwm8", 0},
|
|
{D7, BSP_IO_PORT_02_PIN_08},
|
|
{D8, BSP_IO_PORT_02_PIN_07},
|
|
{D9, BSP_IO_PORT_00_PIN_09},
|
|
{D10, BSP_IO_PORT_07_PIN_12, "pwm2", 0}, /* PWM */
|
|
{D11, BSP_IO_PORT_05_PIN_12, "pwm0", 0}, /* PWM */
|
|
{D12, BSP_IO_PORT_05_PIN_11},
|
|
{D13, BSP_IO_PORT_02_PIN_04},
|
|
{D14, BSP_IO_PORT_02_PIN_03, "i2c0"}, /* I2C-SDA (Soft Wire) */
|
|
{D15, BSP_IO_PORT_02_PIN_02, "i2c0"}, /* I2C-SCL (Soft Wire) */
|
|
{A0, BSP_IO_PORT_00_PIN_00, "adc0", 0}, /* ADC */
|
|
{A1, BSP_IO_PORT_00_PIN_01, "adc0", 1}, /* ADC */
|
|
{A2, BSP_IO_PORT_00_PIN_02, "adc0", 2}, /* ADC */
|
|
{A3, BSP_IO_PORT_00_PIN_03, "adc0", 7}, /* ADC */
|
|
{A4, BSP_IO_PORT_05_PIN_08, "adc0", 20}, /* ADC */
|
|
{A5, BSP_IO_PORT_00_PIN_14, "adc0", 5} /* ADC */
|
|
};
|
|
|
|
static ioport_instance_ctrl_t g_pwm_ioport_ctrl;
|
|
static const ioport_pin_cfg_t g_pwm_pin_cfg_data[] = {
|
|
{
|
|
.pin = BSP_IO_PORT_05_PIN_12,
|
|
.pin_cfg = ((uint32_t) IOPORT_CFG_PERIPHERAL_PIN | (uint32_t) IOPORT_PERIPHERAL_GPT1)
|
|
},
|
|
};
|
|
|
|
static const ioport_cfg_t g_pwm_pin_cfg = {
|
|
.number_of_pins = sizeof(g_pwm_pin_cfg_data)/sizeof(ioport_pin_cfg_t),
|
|
.p_pin_cfg_data = &g_pwm_pin_cfg_data[0],
|
|
};
|
|
|
|
void switchToPWM(const char *device_name)
|
|
{
|
|
if(!rt_strcmp(device_name, "pwm0"))
|
|
{
|
|
R_IOPORT_Open(&g_pwm_ioport_ctrl, &g_pwm_pin_cfg);
|
|
LOG_I("D11 will switch from SPI to PWM");
|
|
}
|
|
}
|