b49c9ab0c6
完整实现了以下模块: - 系统数据总线(sys_data_bus)模块间通信 - UART/USART/LPUART驱动 + RS485半双工 - I2C驱动(AS5600角度传感器 + AT24C02 EEPROM) - Modbus RTU从站协议 - 步进电机微步进控制(正弦/余弦换相+S曲线加减速) - 到位开关驱动(DI_MIN/DI_MAX) - PGA+ADC电流检测 - 系统监控任务(内存/串口/传感器/任务状态) - LED/Key外设驱动 - 基于CMake + arm-none-eabi-gcc构建系统
50 lines
1.3 KiB
C
50 lines
1.3 KiB
C
#include "hardware_init.h"
|
|
#include "py32md530.h"
|
|
#include "system_py32md530.h"
|
|
#include "config.h"
|
|
|
|
ret_code_t hardware_init(void)
|
|
{
|
|
SystemInit();
|
|
|
|
RCC->AHBENR |= RCC_AHBENR_GPIOAEN
|
|
| RCC_AHBENR_GPIOBEN
|
|
| RCC_AHBENR_GPIOCEN
|
|
| RCC_AHBENR_GPIOFEN;
|
|
|
|
RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN
|
|
| RCC_APB2ENR_USART1EN
|
|
| RCC_APB2ENR_TIM1EN;
|
|
|
|
RCC->APB1ENR |= RCC_APB1ENR_UART1EN
|
|
| RCC_APB1ENR_LPUART1EN
|
|
| RCC_APB1ENR_I2C1EN
|
|
| RCC_APB1ENR_TIM3EN
|
|
| RCC_APB1ENR_TIM14EN;
|
|
|
|
RCC->AHBENR |= RCC_AHBENR_DMAEN;
|
|
|
|
return RET_OK;
|
|
}
|
|
|
|
ret_code_t hardware_deinit(void)
|
|
{
|
|
RCC->AHBENR &= ~(RCC_AHBENR_GPIOAEN
|
|
| RCC_AHBENR_GPIOBEN
|
|
| RCC_AHBENR_GPIOCEN
|
|
| RCC_AHBENR_GPIOFEN
|
|
| RCC_AHBENR_DMAEN);
|
|
|
|
RCC->APB2ENR &= ~(RCC_APB2ENR_SYSCFGEN
|
|
| RCC_APB2ENR_USART1EN
|
|
| RCC_APB2ENR_TIM1EN);
|
|
|
|
RCC->APB1ENR &= ~(RCC_APB1ENR_UART1EN
|
|
| RCC_APB1ENR_LPUART1EN
|
|
| RCC_APB1ENR_I2C1EN
|
|
| RCC_APB1ENR_TIM3EN
|
|
| RCC_APB1ENR_TIM14EN);
|
|
|
|
return RET_OK;
|
|
}
|