motor_cs103/User/board/board.c

58 lines
1.5 KiB
C

#include "board.h"
uart_t *uart = NULL;
static void uart_rx_cb(uint8_t uart_index, uint8_t *data, uint16_t len)
{
}
static void uart_init(void)
{
if (uart == NULL)
{
uart = uart_create(USART1, TRUE, UART_RXSIZE, uart_rx_cb, TRUE, UART_TXSIZE, NULL);
uart->uart_index = 0;
uart->dma = DMA1;
uart->dma_rx_channel = LL_DMA_CHANNEL_5;
uart->dma_tx_channel = LL_DMA_CHANNEL_4;
uart_recv_en(uart, FALSE);
}
}
/**
* @brief 通过UART发送数据
*
* 该函数通过UART接口发送指定长度的数据。
*
* @param data 指向要发送数据的指针
* @param len 要发送的数据长度
*/
void uart_send(uint8_t *data, uint16_t len)
{
uart_send_data(uart, data, len);
}
/**
* @brief 初始化显示板
*
*/
void board_init(void)
{
uart_init();
ssd1306_init();
{
spi_gpio_group_t gpios;
gpios.cs = gpio_create(TMC2240_CS_GPIO_Port, TMC2240_CS_Pin);
gpios.mosi = gpio_create(TMC2240_MOSI_GPIO_Port, TMC2240_MOSI_Pin);
gpios.sck = gpio_create(TMC2240_SCK_GPIO_Port, TMC2240_SCK_Pin);
gpios.miso = gpio_create(TMC2240_MISO_GPIO_Port, TMC2240_MISO_Pin);
gpios.rst = gpio_create(NULL, 0);
gpios.rdy = gpio_create(NULL, 0);
tmc2240_init(TMC2240_1, SPI1, TIM3, LL_TIM_CHANNEL_CH3, &gpios);
tmc2240_get(TMC2240_1)->en = gpio_create(TMC2240_EN_GPIO_Port, TMC2240_EN_Pin);
tmc2240_get(TMC2240_1)->dir = gpio_create(TMC2240_DIR_GPIO_Port, TMC2240_DIR_Pin);
tmc2240_get(TMC2240_1)->params.enable = TRUE;
}
}