Compare commits
8 Commits
1887a178c1
...
fschina
| Author | SHA1 | Date | |
|---|---|---|---|
| 00bb72d7b7 | |||
| ea45c3cbfb | |||
| d1d61da006 | |||
| a2c6fbf97f | |||
| bedc8a2eb7 | |||
| 061cdde78d | |||
| 41c242aab7 | |||
| bfba65b904 |
3
.gitignore
vendored
3
.gitignore
vendored
@ -96,7 +96,6 @@ CMakeCache.txt
|
||||
CMakeFiles
|
||||
CMakeScripts
|
||||
Testing
|
||||
Makefile
|
||||
cmake_install.cmake
|
||||
install_manifest.txt
|
||||
compile_commands.json
|
||||
@ -134,3 +133,5 @@ fp-info-cache
|
||||
*.xml
|
||||
*.csv
|
||||
|
||||
# clangd
|
||||
.cache/
|
||||
|
||||
22
.mxproject
22
.mxproject
File diff suppressed because one or more lines are too long
@ -13,27 +13,27 @@
|
||||
typedef union {
|
||||
struct {
|
||||
uint8_t NC : 1;
|
||||
uint8_t en13 : 1; // inverters
|
||||
uint8_t en2 : 1; //servos regler
|
||||
uint8_t en1 : 1; //acu
|
||||
uint8_t en4 : 1; // reserved
|
||||
uint8_t en11 : 1; //lidar
|
||||
uint8_t en8 : 1; // sdc
|
||||
uint8_t alwayson : 1; // en7 ist always on
|
||||
uint8_t inverter : 1;
|
||||
uint8_t drs_buck : 1;
|
||||
uint8_t acu : 1;
|
||||
uint8_t reserved : 1;
|
||||
uint8_t lidar : 1;
|
||||
uint8_t sdc : 1;
|
||||
uint8_t alwayson : 1;
|
||||
};
|
||||
uint8_t porta;
|
||||
} gpio_port_a;
|
||||
|
||||
typedef union {
|
||||
struct {
|
||||
uint8_t en15: 1; // epsc
|
||||
uint8_t en12 : 1; // hyd aggregat
|
||||
uint8_t epsc: 1;
|
||||
uint8_t hyd_pump : 1;
|
||||
uint8_t NC : 1;
|
||||
uint8_t en3 : 1; // ebs cs valve
|
||||
uint8_t en6 : 1; // ebs valve b
|
||||
uint8_t en5 : 1; //ebs valve a
|
||||
uint8_t en14 : 1; //servos
|
||||
uint8_t en16 : 1; //misc
|
||||
uint8_t ebs_cs : 1;
|
||||
uint8_t ebs_b : 1;
|
||||
uint8_t ebs_a : 1;
|
||||
uint8_t drs_profet : 1;
|
||||
uint8_t misc : 1;
|
||||
};
|
||||
uint8_t portb;
|
||||
} gpio_port_b;
|
||||
@ -47,8 +47,7 @@ typedef union {
|
||||
|
||||
} PortExtenderGPIO;
|
||||
|
||||
void ChannelControl_init(I2C_HandleTypeDef* hi2c, TIM_HandleTypeDef* timer3,
|
||||
TIM_HandleTypeDef* timer2);
|
||||
void ChannelControl_init(I2C_HandleTypeDef* hi2c, TIM_HandleTypeDef* timer2);
|
||||
void ChannelControl_UpdateGPIOs(PortExtenderGPIO);
|
||||
|
||||
void ChannelControl_UpdatePWMs(
|
||||
|
||||
@ -28,6 +28,7 @@
|
||||
#define PCA_I2C_BASE_ADDRESS 0x40
|
||||
|
||||
void PCA9535_init(I2C_HandleTypeDef* hi2c, uint8_t subadr);
|
||||
HAL_StatusTypeDef PCA9535_writeRegister(uint8_t reg, uint8_t data);
|
||||
|
||||
void PCA9535_setGPIOPinDirection(uint8_t Port, uint8_t pin, uint8_t state);
|
||||
void PCA9535_setGPIOPinOutput(uint8_t Port, uint8_t pin, uint8_t state);
|
||||
|
||||
@ -89,6 +89,8 @@ void Error_Handler(void);
|
||||
#define LV_sens_GPIO_Port GPIOC
|
||||
#define GSS_GPIO_Pin GPIO_PIN_0
|
||||
#define GSS_GPIO_GPIO_Port GPIOB
|
||||
#define EN_PUMP_Pin GPIO_PIN_1
|
||||
#define EN_PUMP_GPIO_Port GPIOB
|
||||
#define DSEL_3_Pin GPIO_PIN_12
|
||||
#define DSEL_3_GPIO_Port GPIOB
|
||||
#define DSEL_4_Pin GPIO_PIN_13
|
||||
@ -105,6 +107,10 @@ void Error_Handler(void);
|
||||
#define STATUS_LED3_GPIO_Port GPIOC
|
||||
#define STATUS_LED4_Pin GPIO_PIN_9
|
||||
#define STATUS_LED4_GPIO_Port GPIOC
|
||||
#define EN_TSACFAN_Pin GPIO_PIN_3
|
||||
#define EN_TSACFAN_GPIO_Port GPIOB
|
||||
#define EN_RADFAN_Pin GPIO_PIN_4
|
||||
#define EN_RADFAN_GPIO_Port GPIOB
|
||||
#define DSEL_7_Pin GPIO_PIN_9
|
||||
#define DSEL_7_GPIO_Port GPIOB
|
||||
|
||||
|
||||
@ -94,7 +94,7 @@ void can_sendloop() {
|
||||
case 4:
|
||||
|
||||
data[0] = current_measurements_adc_val.lv_v >> 8;
|
||||
data[1] = current_measurements_adc_val.lv_v && 0xFF;
|
||||
data[1] = current_measurements_adc_val.lv_v & 0xFF;
|
||||
ftcan_transmit(LV_SENS_ID, data, 2);
|
||||
|
||||
default:
|
||||
|
||||
@ -7,20 +7,16 @@
|
||||
|
||||
#include "Channel_Control.h"
|
||||
#include "PCA9535D_Driver.h"
|
||||
#include "main.h"
|
||||
|
||||
PortExtenderGPIO EN_Ports;
|
||||
|
||||
uint8_t timer3_running = 0;
|
||||
uint8_t timer2_running = 0;
|
||||
TIM_HandleTypeDef* pwmtimer3;
|
||||
TIM_HandleTypeDef* pwmtimer2;
|
||||
|
||||
extern int inhibit_SDC;
|
||||
|
||||
void ChannelControl_init(I2C_HandleTypeDef* hi2c, TIM_HandleTypeDef* timer3,
|
||||
TIM_HandleTypeDef* timer2) {
|
||||
|
||||
pwmtimer3 = timer3;
|
||||
void ChannelControl_init(I2C_HandleTypeDef* hi2c, TIM_HandleTypeDef* timer2) {
|
||||
pwmtimer2 = timer2;
|
||||
PCA9535_init(hi2c, 0);
|
||||
PCA9535_setGPIOPortOutput(PC9535_PORTA, 0x00);
|
||||
@ -38,8 +34,9 @@ void ChannelControl_init(I2C_HandleTypeDef* hi2c, TIM_HandleTypeDef* timer3,
|
||||
void ChannelControl_UpdateGPIOs(PortExtenderGPIO UpdatePorts) { // ctrl + left click auf portextender
|
||||
EN_Ports = UpdatePorts;
|
||||
UpdatePorts.porta.alwayson = 1; // Always on stays always on
|
||||
if (inhibit_SDC)
|
||||
UpdatePorts.porta.en8 = 0;
|
||||
if (inhibit_SDC) {
|
||||
UpdatePorts.porta.sdc = 0;
|
||||
}
|
||||
PCA9535_setGPIOPortOutput(PC9535_PORTA, UpdatePorts.porta.porta);
|
||||
PCA9535_setGPIOPortOutput(PC9535_PORTB, UpdatePorts.portb.portb);
|
||||
}
|
||||
@ -50,39 +47,27 @@ void ChannelControl_UpdatePWMs(
|
||||
uint8_t tsacfans,
|
||||
uint8_t pwmaggregat)
|
||||
{
|
||||
|
||||
pwmtimer3->Instance->CCR1 = radiatorfans << 8;
|
||||
pwmtimer3->Instance->CCR4 = pwmpumps << 8;
|
||||
pwmtimer2->Instance->CCR2 = tsacfans << 8;
|
||||
pwmtimer2->Instance->CCR3 = pwmaggregat << 8;
|
||||
|
||||
if (timer3_running) {
|
||||
if ((pwmpumps == 0) && (radiatorfans == 0)) {
|
||||
timer3_running = 0;
|
||||
HAL_TIM_PWM_Stop(pwmtimer3, TIM_CHANNEL_4);
|
||||
HAL_TIM_PWM_Stop(pwmtimer3, TIM_CHANNEL_1);
|
||||
}
|
||||
} else {
|
||||
if ( (pwmpumps != 0) || (radiatorfans != 0)) {
|
||||
timer3_running = 1;
|
||||
HAL_TIM_PWM_Start(pwmtimer3, TIM_CHANNEL_4);
|
||||
HAL_TIM_PWM_Start(pwmtimer3, TIM_CHANNEL_1);
|
||||
}
|
||||
}
|
||||
|
||||
if (timer2_running) {
|
||||
if ( (tsacfans == 0) || (pwmaggregat == 0) ) {
|
||||
if (pwmaggregat == 0) {
|
||||
timer2_running = 0;
|
||||
HAL_TIM_PWM_Stop(pwmtimer2, TIM_CHANNEL_2);
|
||||
HAL_TIM_PWM_Stop(pwmtimer2, TIM_CHANNEL_3);
|
||||
}
|
||||
} else {
|
||||
if ( (tsacfans != 0) || (pwmaggregat != 0) ) {
|
||||
if (pwmaggregat != 0) {
|
||||
timer2_running = 1;
|
||||
HAL_TIM_PWM_Start(pwmtimer2, TIM_CHANNEL_2);
|
||||
HAL_TIM_PWM_Start(pwmtimer2, TIM_CHANNEL_3);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// TODO: This should probably be done in UpdateGPIOs (and only be enable bits
|
||||
// in the CAN command)
|
||||
HAL_GPIO_WritePin(EN_TSACFAN_GPIO_Port, EN_TSACFAN_Pin,
|
||||
tsacfans ? GPIO_PIN_SET : GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(EN_RADFAN_GPIO_Port, EN_RADFAN_Pin,
|
||||
radiatorfans ? GPIO_PIN_SET : GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(EN_PUMP_GPIO_Port, EN_PUMP_Pin,
|
||||
pwmpumps ? GPIO_PIN_SET : GPIO_PIN_RESET);
|
||||
}
|
||||
|
||||
@ -31,8 +31,23 @@ void PCA9535_init(I2C_HandleTypeDef* hi2c, uint8_t subadr) {
|
||||
pcai2c = hi2c;
|
||||
deviceadr = PCA_I2C_BASE_ADDRESS | (subadr << 1);
|
||||
|
||||
uint8_t initalizationconfig[7] = {0x02, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF};
|
||||
HAL_I2C_Master_Transmit(pcai2c, deviceadr, initalizationconfig, 7, 1000);
|
||||
if (PCA9535_writeRegister(2, 0) != HAL_OK) {
|
||||
Error_Handler();
|
||||
}
|
||||
if (PCA9535_writeRegister(3, 0) != HAL_OK) {
|
||||
Error_Handler();
|
||||
}
|
||||
if (PCA9535_writeRegister(6, 0) != HAL_OK) {
|
||||
Error_Handler();
|
||||
}
|
||||
if (PCA9535_writeRegister(7, 0) != HAL_OK) {
|
||||
Error_Handler();
|
||||
}
|
||||
}
|
||||
|
||||
HAL_StatusTypeDef PCA9535_writeRegister(uint8_t reg, uint8_t data) {
|
||||
uint8_t dataarray[2] = {reg, data};
|
||||
return HAL_I2C_Master_Transmit(pcai2c, deviceadr, dataarray, 2, 1000);
|
||||
}
|
||||
|
||||
void PCA9535_setGPIOPinDirection(uint8_t Port, uint8_t pin, uint8_t state) {
|
||||
|
||||
@ -52,7 +52,6 @@ CAN_HandleTypeDef hcan;
|
||||
I2C_HandleTypeDef hi2c1;
|
||||
|
||||
TIM_HandleTypeDef htim2;
|
||||
TIM_HandleTypeDef htim3;
|
||||
TIM_HandleTypeDef htim6;
|
||||
|
||||
UART_HandleTypeDef huart1;
|
||||
@ -69,7 +68,6 @@ static void MX_ADC1_Init(void);
|
||||
static void MX_ADC2_Init(void);
|
||||
static void MX_CAN_Init(void);
|
||||
static void MX_TIM2_Init(void);
|
||||
static void MX_TIM3_Init(void);
|
||||
static void MX_I2C1_Init(void);
|
||||
static void MX_USART1_UART_Init(void);
|
||||
static void MX_TIM6_Init(void);
|
||||
@ -126,7 +124,6 @@ int main(void)
|
||||
MX_ADC2_Init();
|
||||
MX_CAN_Init();
|
||||
MX_TIM2_Init();
|
||||
MX_TIM3_Init();
|
||||
MX_I2C1_Init();
|
||||
MX_USART1_UART_Init();
|
||||
MX_TIM6_Init();
|
||||
@ -136,7 +133,7 @@ int main(void)
|
||||
HAL_GPIO_WritePin(STATUS_LED1_GPIO_Port , STATUS_LED1_Pin , GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(GSS_GPIO_GPIO_Port, GSS_GPIO_Pin, GPIO_PIN_SET);
|
||||
|
||||
ChannelControl_init(&hi2c1, &htim3, &htim2);
|
||||
ChannelControl_init(&hi2c1, &htim2);
|
||||
// handler struktur ( handler adc1 .... usw )
|
||||
can_init(&hcan); // can bus initilisiert , kommunikation zum hauptsteuergeraet ( autobox )
|
||||
|
||||
@ -144,7 +141,6 @@ int main(void)
|
||||
|
||||
uint32_t lasttick = HAL_GetTick(); // gibt dir zuruck die milisekunden seit start. ( es fangt an und dann milisekunden + 1 usw....)
|
||||
HAL_TIM_Base_Start(&htim2);
|
||||
HAL_TIM_Base_Start(&htim3);
|
||||
|
||||
// Prevent closing of SDC (esp. after WDG reset)
|
||||
//inhibit_SDC = 1;
|
||||
@ -180,6 +176,7 @@ int main(void)
|
||||
if ((HAL_GetTick() - lasttick) > 100U) {
|
||||
lasttick = HAL_GetTick();
|
||||
can_sendloop();
|
||||
HAL_GPIO_TogglePin(STATUS_LED1_GPIO_Port, STATUS_LED1_Pin);
|
||||
}
|
||||
|
||||
// nominal WD time is 100ms, plus a bit of tolerance
|
||||
@ -594,10 +591,6 @@ static void MX_TIM2_Init(void)
|
||||
sConfigOC.Pulse = 0;
|
||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
||||
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
||||
if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_3) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
@ -609,59 +602,6 @@ static void MX_TIM2_Init(void)
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TIM3 Initialization Function
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
static void MX_TIM3_Init(void)
|
||||
{
|
||||
|
||||
/* USER CODE BEGIN TIM3_Init 0 */
|
||||
|
||||
/* USER CODE END TIM3_Init 0 */
|
||||
|
||||
TIM_MasterConfigTypeDef sMasterConfig = {0};
|
||||
TIM_OC_InitTypeDef sConfigOC = {0};
|
||||
|
||||
/* USER CODE BEGIN TIM3_Init 1 */
|
||||
|
||||
/* USER CODE END TIM3_Init 1 */
|
||||
htim3.Instance = TIM3;
|
||||
htim3.Init.Prescaler = 0;
|
||||
htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||
htim3.Init.Period = 65535;
|
||||
htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||
htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
||||
if (HAL_TIM_PWM_Init(&htim3) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
||||
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
||||
if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
||||
sConfigOC.Pulse = 0;
|
||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
||||
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
||||
if (HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
if (HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_4) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN TIM3_Init 2 */
|
||||
|
||||
/* USER CODE END TIM3_Init 2 */
|
||||
HAL_TIM_MspPostInit(&htim3);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TIM6 Initialization Function
|
||||
* @param None
|
||||
@ -776,8 +716,9 @@ static void MX_GPIO_Init(void)
|
||||
HAL_GPIO_WritePin(DSEL_8_GPIO_Port, DSEL_8_Pin, GPIO_PIN_RESET);
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(GPIOB, GSS_GPIO_Pin|DSEL_3_Pin|DSEL_4_Pin|DSEL_5_Pin
|
||||
|DSEL_6_Pin|DSEL_7_Pin, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(GPIOB, GSS_GPIO_Pin|EN_PUMP_Pin|DSEL_3_Pin|DSEL_4_Pin
|
||||
|DSEL_5_Pin|DSEL_6_Pin|EN_TSACFAN_Pin|EN_RADFAN_Pin
|
||||
|DSEL_7_Pin, GPIO_PIN_RESET);
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(GPIOC, STATUS_LED1_Pin|STATUS_LED2_Pin|STATUS_LED3_Pin|STATUS_LED4_Pin, GPIO_PIN_RESET);
|
||||
@ -789,10 +730,12 @@ static void MX_GPIO_Init(void)
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(DSEL_8_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pins : GSS_GPIO_Pin DSEL_3_Pin DSEL_4_Pin DSEL_5_Pin
|
||||
DSEL_6_Pin DSEL_7_Pin */
|
||||
GPIO_InitStruct.Pin = GSS_GPIO_Pin|DSEL_3_Pin|DSEL_4_Pin|DSEL_5_Pin
|
||||
|DSEL_6_Pin|DSEL_7_Pin;
|
||||
/*Configure GPIO pins : GSS_GPIO_Pin EN_PUMP_Pin DSEL_3_Pin DSEL_4_Pin
|
||||
DSEL_5_Pin DSEL_6_Pin EN_TSACFAN_Pin EN_RADFAN_Pin
|
||||
DSEL_7_Pin */
|
||||
GPIO_InitStruct.Pin = GSS_GPIO_Pin|EN_PUMP_Pin|DSEL_3_Pin|DSEL_4_Pin
|
||||
|DSEL_5_Pin|DSEL_6_Pin|EN_TSACFAN_Pin|EN_RADFAN_Pin
|
||||
|DSEL_7_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
|
||||
@ -62,7 +62,7 @@ extern DMA_HandleTypeDef hdma_adc2;
|
||||
/* USER CODE END 0 */
|
||||
|
||||
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
|
||||
/**
|
||||
/**
|
||||
* Initializes the Global MSP.
|
||||
*/
|
||||
void HAL_MspInit(void)
|
||||
@ -482,17 +482,6 @@ void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm)
|
||||
|
||||
/* USER CODE END TIM2_MspInit 1 */
|
||||
}
|
||||
else if(htim_pwm->Instance==TIM3)
|
||||
{
|
||||
/* USER CODE BEGIN TIM3_MspInit 0 */
|
||||
|
||||
/* USER CODE END TIM3_MspInit 0 */
|
||||
/* Peripheral clock enable */
|
||||
__HAL_RCC_TIM3_CLK_ENABLE();
|
||||
/* USER CODE BEGIN TIM3_MspInit 1 */
|
||||
|
||||
/* USER CODE END TIM3_MspInit 1 */
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -529,12 +518,12 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
|
||||
/* USER CODE BEGIN TIM2_MspPostInit 0 */
|
||||
|
||||
/* USER CODE END TIM2_MspPostInit 0 */
|
||||
|
||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||
/**TIM2 GPIO Configuration
|
||||
PB10 ------> TIM2_CH3
|
||||
PB3 ------> TIM2_CH2
|
||||
*/
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_3;
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_10;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
@ -545,28 +534,6 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
|
||||
|
||||
/* USER CODE END TIM2_MspPostInit 1 */
|
||||
}
|
||||
else if(htim->Instance==TIM3)
|
||||
{
|
||||
/* USER CODE BEGIN TIM3_MspPostInit 0 */
|
||||
|
||||
/* USER CODE END TIM3_MspPostInit 0 */
|
||||
|
||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||
/**TIM3 GPIO Configuration
|
||||
PB1 ------> TIM3_CH4
|
||||
PB4 ------> TIM3_CH1
|
||||
*/
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_4;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
GPIO_InitStruct.Alternate = GPIO_AF2_TIM3;
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
|
||||
/* USER CODE BEGIN TIM3_MspPostInit 1 */
|
||||
|
||||
/* USER CODE END TIM3_MspPostInit 1 */
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
@ -588,17 +555,6 @@ void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm)
|
||||
|
||||
/* USER CODE END TIM2_MspDeInit 1 */
|
||||
}
|
||||
else if(htim_pwm->Instance==TIM3)
|
||||
{
|
||||
/* USER CODE BEGIN TIM3_MspDeInit 0 */
|
||||
|
||||
/* USER CODE END TIM3_MspDeInit 0 */
|
||||
/* Peripheral clock disable */
|
||||
__HAL_RCC_TIM3_CLK_DISABLE();
|
||||
/* USER CODE BEGIN TIM3_MspDeInit 1 */
|
||||
|
||||
/* USER CODE END TIM3_MspDeInit 1 */
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
204
Makefile
Normal file
204
Makefile
Normal file
@ -0,0 +1,204 @@
|
||||
##########################################################################################################################
|
||||
# File automatically-generated by tool: [projectgenerator] version: [4.3.0-B58] date: [Thu Sep 05 20:41:52 CEST 2024]
|
||||
##########################################################################################################################
|
||||
|
||||
# ------------------------------------------------
|
||||
# Generic Makefile (based on gcc)
|
||||
#
|
||||
# ChangeLog :
|
||||
# 2017-02-10 - Several enhancements + project update mode
|
||||
# 2015-07-22 - first version
|
||||
# ------------------------------------------------
|
||||
|
||||
######################################
|
||||
# target
|
||||
######################################
|
||||
TARGET = PDU FT24 MCU
|
||||
|
||||
|
||||
######################################
|
||||
# building variables
|
||||
######################################
|
||||
# debug build?
|
||||
DEBUG = 1
|
||||
# optimization
|
||||
OPT = -Og
|
||||
|
||||
|
||||
#######################################
|
||||
# paths
|
||||
#######################################
|
||||
# Build path
|
||||
BUILD_DIR = build
|
||||
|
||||
######################################
|
||||
# source
|
||||
######################################
|
||||
# C sources
|
||||
C_SOURCES = \
|
||||
Core/Src/main.c \
|
||||
Core/Src/stm32f3xx_it.c \
|
||||
Core/Src/stm32f3xx_hal_msp.c \
|
||||
Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_adc.c \
|
||||
Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_adc_ex.c \
|
||||
Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c \
|
||||
Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc.c \
|
||||
Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_rcc_ex.c \
|
||||
Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c \
|
||||
Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_dma.c \
|
||||
Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_cortex.c \
|
||||
Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr.c \
|
||||
Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_pwr_ex.c \
|
||||
Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c \
|
||||
Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c \
|
||||
Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c \
|
||||
Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c_ex.c \
|
||||
Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c \
|
||||
Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c \
|
||||
Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim.c \
|
||||
Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_tim_ex.c \
|
||||
Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart.c \
|
||||
Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c \
|
||||
Core/Src/system_stm32f3xx.c \
|
||||
Core/Src/sysmem.c \
|
||||
Core/Src/syscalls.c
|
||||
|
||||
# ASM sources
|
||||
ASM_SOURCES = \
|
||||
startup_stm32f302xc.s
|
||||
|
||||
# ASM sources
|
||||
ASMM_SOURCES =
|
||||
|
||||
|
||||
#######################################
|
||||
# binaries
|
||||
#######################################
|
||||
PREFIX = arm-none-eabi-
|
||||
# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx)
|
||||
# either it can be added to the PATH environment variable.
|
||||
ifdef GCC_PATH
|
||||
CC = $(GCC_PATH)/$(PREFIX)gcc
|
||||
AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp
|
||||
CP = $(GCC_PATH)/$(PREFIX)objcopy
|
||||
SZ = $(GCC_PATH)/$(PREFIX)size
|
||||
else
|
||||
CC = $(PREFIX)gcc
|
||||
AS = $(PREFIX)gcc -x assembler-with-cpp
|
||||
CP = $(PREFIX)objcopy
|
||||
SZ = $(PREFIX)size
|
||||
endif
|
||||
HEX = $(CP) -O ihex
|
||||
BIN = $(CP) -O binary -S
|
||||
|
||||
#######################################
|
||||
# CFLAGS
|
||||
#######################################
|
||||
# cpu
|
||||
CPU = -mcpu=cortex-m4
|
||||
|
||||
# fpu
|
||||
FPU = -mfpu=fpv4-sp-d16
|
||||
|
||||
# float-abi
|
||||
FLOAT-ABI = -mfloat-abi=hard
|
||||
|
||||
# mcu
|
||||
MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI)
|
||||
|
||||
# macros for gcc
|
||||
# AS defines
|
||||
AS_DEFS =
|
||||
|
||||
# C defines
|
||||
C_DEFS = \
|
||||
-DUSE_HAL_DRIVER \
|
||||
-DSTM32F302xC
|
||||
|
||||
|
||||
# AS includes
|
||||
AS_INCLUDES =
|
||||
|
||||
# C includes
|
||||
C_INCLUDES = \
|
||||
-ICore/Inc \
|
||||
-IDrivers/STM32F3xx_HAL_Driver/Inc \
|
||||
-IDrivers/STM32F3xx_HAL_Driver/Inc/Legacy \
|
||||
-IDrivers/CMSIS/Device/ST/STM32F3xx/Include \
|
||||
-IDrivers/CMSIS/Include
|
||||
|
||||
|
||||
# compile gcc flags
|
||||
ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections
|
||||
|
||||
CFLAGS += $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections
|
||||
|
||||
ifeq ($(DEBUG), 1)
|
||||
CFLAGS += -g -gdwarf-2
|
||||
endif
|
||||
|
||||
|
||||
# Generate dependency information
|
||||
CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)"
|
||||
|
||||
|
||||
#######################################
|
||||
# LDFLAGS
|
||||
#######################################
|
||||
# link script
|
||||
LDSCRIPT = STM32F302RBTx_FLASH.ld
|
||||
|
||||
# libraries
|
||||
LIBS = -lc -lm -lnosys
|
||||
LIBDIR =
|
||||
LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections
|
||||
|
||||
# default action: build all
|
||||
all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin
|
||||
|
||||
|
||||
#######################################
|
||||
# build the application
|
||||
#######################################
|
||||
# list of objects
|
||||
OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o)))
|
||||
vpath %.c $(sort $(dir $(C_SOURCES)))
|
||||
# list of ASM program objects
|
||||
OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o)))
|
||||
vpath %.s $(sort $(dir $(ASM_SOURCES)))
|
||||
OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASMM_SOURCES:.S=.o)))
|
||||
vpath %.S $(sort $(dir $(ASMM_SOURCES)))
|
||||
|
||||
$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR)
|
||||
$(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@
|
||||
|
||||
$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR)
|
||||
$(AS) -c $(CFLAGS) $< -o $@
|
||||
$(BUILD_DIR)/%.o: %.S Makefile | $(BUILD_DIR)
|
||||
$(AS) -c $(CFLAGS) $< -o $@
|
||||
|
||||
$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile
|
||||
$(CC) $(OBJECTS) $(LDFLAGS) -o $@
|
||||
$(SZ) $@
|
||||
|
||||
$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR)
|
||||
$(HEX) $< $@
|
||||
|
||||
$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR)
|
||||
$(BIN) $< $@
|
||||
|
||||
$(BUILD_DIR):
|
||||
mkdir $@
|
||||
|
||||
#######################################
|
||||
# clean up
|
||||
#######################################
|
||||
clean:
|
||||
-rm -fR $(BUILD_DIR)
|
||||
|
||||
#######################################
|
||||
# dependencies
|
||||
#######################################
|
||||
-include $(wildcard $(BUILD_DIR)/*.d)
|
||||
|
||||
# *** EOF ***
|
||||
@ -128,8 +128,7 @@ Mcu.CPN=STM32F302RBT6
|
||||
Mcu.Family=STM32F3
|
||||
Mcu.IP0=ADC1
|
||||
Mcu.IP1=ADC2
|
||||
Mcu.IP10=TIM6
|
||||
Mcu.IP11=USART1
|
||||
Mcu.IP10=USART1
|
||||
Mcu.IP2=CAN
|
||||
Mcu.IP3=DMA
|
||||
Mcu.IP4=I2C1
|
||||
@ -137,8 +136,8 @@ Mcu.IP5=NVIC
|
||||
Mcu.IP6=RCC
|
||||
Mcu.IP7=SYS
|
||||
Mcu.IP8=TIM2
|
||||
Mcu.IP9=TIM3
|
||||
Mcu.IPNb=12
|
||||
Mcu.IP9=TIM6
|
||||
Mcu.IPNb=11
|
||||
Mcu.Name=STM32F302R(B-C)Tx
|
||||
Mcu.Package=LQFP64
|
||||
Mcu.Pin0=PF0-OSC_IN
|
||||
@ -275,8 +274,10 @@ PB0.GPIOParameters=GPIO_Label
|
||||
PB0.GPIO_Label=GSS_GPIO
|
||||
PB0.Locked=true
|
||||
PB0.Signal=GPIO_Output
|
||||
PB1.GPIOParameters=GPIO_Label
|
||||
PB1.GPIO_Label=EN_PUMP
|
||||
PB1.Locked=true
|
||||
PB1.Signal=S_TIM3_CH4
|
||||
PB1.Signal=GPIO_Output
|
||||
PB10.Locked=true
|
||||
PB10.Signal=S_TIM2_CH3
|
||||
PB12.GPIOParameters=GPIO_Label
|
||||
@ -295,10 +296,14 @@ PB15.GPIOParameters=GPIO_Label
|
||||
PB15.GPIO_Label=DSEL 6
|
||||
PB15.Locked=true
|
||||
PB15.Signal=GPIO_Output
|
||||
PB3.GPIOParameters=GPIO_Label
|
||||
PB3.GPIO_Label=EN_TSACFAN
|
||||
PB3.Locked=true
|
||||
PB3.Signal=S_TIM2_CH2
|
||||
PB3.Signal=GPIO_Output
|
||||
PB4.GPIOParameters=GPIO_Label
|
||||
PB4.GPIO_Label=EN_RADFAN
|
||||
PB4.Locked=true
|
||||
PB4.Signal=S_TIM3_CH1
|
||||
PB4.Signal=GPIO_Output
|
||||
PB7.Locked=true
|
||||
PB7.Mode=I2C
|
||||
PB7.Signal=I2C1_SDA
|
||||
@ -382,7 +387,7 @@ ProjectManager.ToolChainLocation=
|
||||
ProjectManager.UAScriptAfterPath=
|
||||
ProjectManager.UAScriptBeforePath=
|
||||
ProjectManager.UnderRoot=false
|
||||
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_ADC1_Init-ADC1-false-HAL-true,5-MX_ADC2_Init-ADC2-false-HAL-true,6-MX_CAN_Init-CAN-false-HAL-true,7-MX_TIM2_Init-TIM2-false-HAL-true,8-MX_TIM3_Init-TIM3-false-HAL-true,9-MX_I2C1_Init-I2C1-false-HAL-true,10-MX_USART1_UART_Init-USART1-false-HAL-true,11-MX_TIM6_Init-TIM6-false-HAL-true
|
||||
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_ADC1_Init-ADC1-false-HAL-true,5-MX_ADC2_Init-ADC2-false-HAL-true,6-MX_CAN_Init-CAN-false-HAL-true,7-MX_TIM2_Init-TIM2-false-HAL-true,8-MX_TIM3_Init-TIM3-false-HAL-true,8-MX_I2C1_Init-I2C1-false-HAL-true,9-MX_USART1_UART_Init-USART1-false-HAL-true,10-MX_TIM6_Init-TIM6-false-HAL-true
|
||||
RCC.ADC12outputFreq_Value=64000000
|
||||
RCC.AHBFreq_Value=16000000
|
||||
RCC.APB1Freq_Value=16000000
|
||||
@ -432,22 +437,11 @@ SH.ADCx_IN8.0=ADC1_IN8,IN8-Single-Ended
|
||||
SH.ADCx_IN8.ConfNb=1
|
||||
SH.ADCx_IN9.0=ADC1_IN9,IN9-Single-Ended
|
||||
SH.ADCx_IN9.ConfNb=1
|
||||
SH.S_TIM2_CH2.0=TIM2_CH2,PWM Generation2 CH2
|
||||
SH.S_TIM2_CH2.ConfNb=1
|
||||
SH.S_TIM2_CH3.0=TIM2_CH3,PWM Generation3 CH3
|
||||
SH.S_TIM2_CH3.ConfNb=1
|
||||
SH.S_TIM3_CH1.0=TIM3_CH1,PWM Generation1 CH1
|
||||
SH.S_TIM3_CH1.ConfNb=1
|
||||
SH.S_TIM3_CH4.0=TIM3_CH4,PWM Generation4 CH4
|
||||
SH.S_TIM3_CH4.ConfNb=1
|
||||
TIM2.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2
|
||||
TIM2.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3
|
||||
TIM2.IPParameters=Channel-PWM Generation2 CH2,Pulse-PWM Generation2 CH2,Period,Channel-PWM Generation3 CH3
|
||||
TIM2.IPParameters=Period,Channel-PWM Generation3 CH3
|
||||
TIM2.Period=65535
|
||||
TIM2.Pulse-PWM\ Generation2\ CH2=0
|
||||
TIM3.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
|
||||
TIM3.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4
|
||||
TIM3.IPParameters=Channel-PWM Generation1 CH1,Channel-PWM Generation4 CH4
|
||||
TIM6.IPParameters=Prescaler,Period,TIM_MasterOutputTrigger
|
||||
TIM6.Period=8000-1
|
||||
TIM6.Prescaler=400
|
||||
|
||||
@ -85,7 +85,7 @@ PREFIX = arm-none-eabi-
|
||||
POSTFIX = "
|
||||
# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx)
|
||||
# either it can be added to the PATH environment variable.
|
||||
GCC_PATH="c:/Users/GETAC/AppData/Roaming/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-none-eabi-gcc/13.2.1-1.1.1/.content/bin
|
||||
GCC_PATH="/home/jasper/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-none-eabi-gcc/13.2.1-1.1.1/.content/bin
|
||||
ifdef GCC_PATH
|
||||
CXX = $(GCC_PATH)/$(PREFIX)g++$(POSTFIX)
|
||||
CC = $(GCC_PATH)/$(PREFIX)gcc$(POSTFIX)
|
||||
@ -238,19 +238,19 @@ $(BUILD_DIR):
|
||||
# flash
|
||||
#######################################
|
||||
flash: $(BUILD_DIR)/$(TARGET).elf
|
||||
"C:/USERS/GETAC/APPDATA/ROAMING/CODE/USER/GLOBALSTORAGE/BMD.STM32-FOR-VSCODE/@XPACK-DEV-TOOLS/OPENOCD/0.12.0-3.1/.CONTENT/BIN/OPENOCD.EXE" -f ./openocd.cfg -c "program $(BUILD_DIR)/$(TARGET).elf verify reset exit"
|
||||
"/home/jasper/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/openocd/0.12.0-3.1/.content/bin/openocd" -f ./openocd.cfg -c "program $(BUILD_DIR)/$(TARGET).elf verify reset exit"
|
||||
|
||||
#######################################
|
||||
# erase
|
||||
#######################################
|
||||
erase: $(BUILD_DIR)/$(TARGET).elf
|
||||
"C:/USERS/GETAC/APPDATA/ROAMING/CODE/USER/GLOBALSTORAGE/BMD.STM32-FOR-VSCODE/@XPACK-DEV-TOOLS/OPENOCD/0.12.0-3.1/.CONTENT/BIN/OPENOCD.EXE" -f ./openocd.cfg -c "init; reset halt; stm32f3x mass_erase 0; exit"
|
||||
"/home/jasper/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/openocd/0.12.0-3.1/.content/bin/openocd" -f ./openocd.cfg -c "init; reset halt; stm32f3x mass_erase 0; exit"
|
||||
|
||||
#######################################
|
||||
# clean up
|
||||
#######################################
|
||||
clean:
|
||||
cmd /c rd /s /q $(BUILD_DIR)
|
||||
-rm -fR $(BUILD_DIR)
|
||||
|
||||
#######################################
|
||||
# custom makefile rules
|
||||
|
||||
Reference in New Issue
Block a user