Browse Source

update

master
tianjialong 3 years ago
parent
commit
4adbfa0e26
  1. 3
      .gitmodules
  2. 26
      app/.mxproject
  3. 2
      app/Core/Inc/stm32f4xx_hal_conf.h
  4. 57
      app/Core/Inc/tim.h
  5. 12
      app/Core/Src/gpio.c
  6. 69
      app/Core/Src/main.c
  7. 224
      app/Core/Src/tim.c
  8. 224
      app/MDK-ARM/app.uvguix.29643
  9. 316
      app/MDK-ARM/app.uvoptx
  10. 88
      app/MDK-ARM/app.uvprojx
  11. 42
      app/app.ioc
  12. 160
      src/port.c
  13. 58
      src/port.h
  14. 1
      src/usermain.c
  15. 24
      src/zboard.h

3
.gitmodules

@ -0,0 +1,3 @@
[submodule "iflytop_microcontroller"]
path = iflytop_microcontroller
url = zwsd@192.168.1.3:z2nd_lib/iflytop_microcontroller.git

26
app/.mxproject
File diff suppressed because it is too large
View File

2
app/Core/Inc/stm32f4xx_hal_conf.h

@ -62,7 +62,7 @@
/* #define HAL_SD_MODULE_ENABLED */
/* #define HAL_MMC_MODULE_ENABLED */
/* #define HAL_SPI_MODULE_ENABLED */
/* #define HAL_TIM_MODULE_ENABLED */
#define HAL_TIM_MODULE_ENABLED
#define HAL_UART_MODULE_ENABLED
/* #define HAL_USART_MODULE_ENABLED */
/* #define HAL_IRDA_MODULE_ENABLED */

57
app/Core/Inc/tim.h

@ -0,0 +1,57 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file tim.h
* @brief This file contains all the function prototypes for
* the tim.c file
******************************************************************************
* @attention
*
* Copyright (c) 2023 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __TIM_H__
#define __TIM_H__
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "main.h"
/* USER CODE BEGIN Includes */
/* USER CODE END Includes */
extern TIM_HandleTypeDef htim1;
extern TIM_HandleTypeDef htim4;
/* USER CODE BEGIN Private defines */
/* USER CODE END Private defines */
void MX_TIM1_Init(void);
void MX_TIM4_Init(void);
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
/* USER CODE BEGIN Prototypes */
/* USER CODE END Prototypes */
#ifdef __cplusplus
}
#endif
#endif /* __TIM_H__ */

12
app/Core/Src/gpio.c

@ -57,13 +57,13 @@ void MX_GPIO_Init(void)
__HAL_RCC_GPIOD_CLK_ENABLE();
/*Configure GPIO pins : PE2 PE3 PE4 PE5
PE6 PE7 PE8 PE9
PE10 PE11 PE12 PE13
PE14 PE15 PE0 PE1 */
PE6 PE7 PE8 PE10
PE11 PE12 PE13 PE14
PE15 PE0 PE1 */
GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5
|GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9
|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13
|GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1;
|GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_10
|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14
|GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);

69
app/Core/Src/main.c

@ -18,12 +18,12 @@
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "cmsis_os.h"
#include "gpio.h"
#include "iwdg.h"
#include "lwip.h"
#include "tim.h"
#include "usart.h"
#include "gpio.h"
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
@ -63,10 +63,11 @@ void MX_FREERTOS_Init(void);
/* USER CODE END 0 */
/**
* @brief The application entry point.
* @retval int
*/
int main(void) {
* @brief The application entry point.
* @retval int
*/
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
@ -91,6 +92,8 @@ int main(void) {
MX_GPIO_Init();
MX_IWDG_Init();
MX_USART1_UART_Init();
MX_TIM1_Init();
MX_TIM4_Init();
/* USER CODE BEGIN 2 */
extern void user_main();
user_main();
@ -114,22 +117,23 @@ int main(void) {
}
/**
* @brief System Clock Configuration
* @retval None
*/
void SystemClock_Config(void) {
* @brief System Clock Configuration
* @retval None
*/
void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
/** Configure the main internal regulator output voltage
*/
*/
__HAL_RCC_PWR_CLK_ENABLE();
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
/** Initializes the RCC Oscillators according to the specified parameters
* in the RCC_OscInitTypeDef structure.
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_HSE;
* in the RCC_OscInitTypeDef structure.
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.LSIState = RCC_LSI_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
@ -138,19 +142,22 @@ void SystemClock_Config(void) {
RCC_OscInitStruct.PLL.PLLN = 336;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
RCC_OscInitStruct.PLL.PLLQ = 4;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
{
Error_Handler();
}
/** Initializes the CPU, AHB and APB buses clocks
*/
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
*/
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK) {
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)
{
Error_Handler();
}
}
@ -160,10 +167,11 @@ void SystemClock_Config(void) {
/* USER CODE END 4 */
/**
* @brief This function is executed in case of error occurrence.
* @retval None
*/
void Error_Handler(void) {
* @brief This function is executed in case of error occurrence.
* @retval None
*/
void Error_Handler(void)
{
/* USER CODE BEGIN Error_Handler_Debug */
/* User can add his own implementation to report the HAL error return state */
__disable_irq();
@ -172,15 +180,16 @@ void Error_Handler(void) {
/* USER CODE END Error_Handler_Debug */
}
#ifdef USE_FULL_ASSERT
#ifdef USE_FULL_ASSERT
/**
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred.
* @param file: pointer to the source file name
* @param line: assert_param error line source number
* @retval None
*/
void assert_failed(uint8_t *file, uint32_t line) {
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred.
* @param file: pointer to the source file name
* @param line: assert_param error line source number
* @retval None
*/
void assert_failed(uint8_t *file, uint32_t line)
{
/* USER CODE BEGIN 6 */
/* User can add his own implementation to report the file name and line number,
ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */

224
app/Core/Src/tim.c

@ -0,0 +1,224 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file tim.c
* @brief This file provides code for the configuration
* of the TIM instances.
******************************************************************************
* @attention
*
* Copyright (c) 2023 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "tim.h"
/* USER CODE BEGIN 0 */
/* USER CODE END 0 */
TIM_HandleTypeDef htim1;
TIM_HandleTypeDef htim4;
/* TIM1 init function */
void MX_TIM1_Init(void)
{
/* USER CODE BEGIN TIM1_Init 0 */
/* USER CODE END TIM1_Init 0 */
TIM_MasterConfigTypeDef sMasterConfig = {0};
TIM_OC_InitTypeDef sConfigOC = {0};
TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig = {0};
/* USER CODE BEGIN TIM1_Init 1 */
/* USER CODE END TIM1_Init 1 */
htim1.Instance = TIM1;
htim1.Init.Prescaler = 0;
htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
htim1.Init.Period = 65535;
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim1.Init.RepetitionCounter = 0;
htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_PWM_Init(&htim1) != HAL_OK)
{
Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
{
Error_Handler();
}
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 0;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
{
Error_Handler();
}
sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE;
sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF;
sBreakDeadTimeConfig.DeadTime = 0;
sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
if (HAL_TIMEx_ConfigBreakDeadTime(&htim1, &sBreakDeadTimeConfig) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN TIM1_Init 2 */
/* USER CODE END TIM1_Init 2 */
HAL_TIM_MspPostInit(&htim1);
}
/* TIM4 init function */
void MX_TIM4_Init(void)
{
/* USER CODE BEGIN TIM4_Init 0 */
/* USER CODE END TIM4_Init 0 */
TIM_ClockConfigTypeDef sClockSourceConfig = {0};
TIM_MasterConfigTypeDef sMasterConfig = {0};
/* USER CODE BEGIN TIM4_Init 1 */
/* USER CODE END TIM4_Init 1 */
htim4.Instance = TIM4;
htim4.Init.Prescaler = 168-1;
htim4.Init.CounterMode = TIM_COUNTERMODE_UP;
htim4.Init.Period = 65535;
htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htim4) != HAL_OK)
{
Error_Handler();
}
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
if (HAL_TIM_ConfigClockSource(&htim4, &sClockSourceConfig) != HAL_OK)
{
Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim4, &sMasterConfig) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN TIM4_Init 2 */
/* USER CODE END TIM4_Init 2 */
}
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* tim_pwmHandle)
{
if(tim_pwmHandle->Instance==TIM1)
{
/* USER CODE BEGIN TIM1_MspInit 0 */
/* USER CODE END TIM1_MspInit 0 */
/* TIM1 clock enable */
__HAL_RCC_TIM1_CLK_ENABLE();
/* USER CODE BEGIN TIM1_MspInit 1 */
/* USER CODE END TIM1_MspInit 1 */
}
}
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
{
if(tim_baseHandle->Instance==TIM4)
{
/* USER CODE BEGIN TIM4_MspInit 0 */
/* USER CODE END TIM4_MspInit 0 */
/* TIM4 clock enable */
__HAL_RCC_TIM4_CLK_ENABLE();
/* USER CODE BEGIN TIM4_MspInit 1 */
/* USER CODE END TIM4_MspInit 1 */
}
}
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
if(timHandle->Instance==TIM1)
{
/* USER CODE BEGIN TIM1_MspPostInit 0 */
/* USER CODE END TIM1_MspPostInit 0 */
__HAL_RCC_GPIOE_CLK_ENABLE();
/**TIM1 GPIO Configuration
PE9 ------> TIM1_CH1
*/
GPIO_InitStruct.Pin = GPIO_PIN_9;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
/* USER CODE BEGIN TIM1_MspPostInit 1 */
/* USER CODE END TIM1_MspPostInit 1 */
}
}
void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* tim_pwmHandle)
{
if(tim_pwmHandle->Instance==TIM1)
{
/* USER CODE BEGIN TIM1_MspDeInit 0 */
/* USER CODE END TIM1_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_TIM1_CLK_DISABLE();
/* USER CODE BEGIN TIM1_MspDeInit 1 */
/* USER CODE END TIM1_MspDeInit 1 */
}
}
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
{
if(tim_baseHandle->Instance==TIM4)
{
/* USER CODE BEGIN TIM4_MspDeInit 0 */
/* USER CODE END TIM4_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_TIM4_CLK_DISABLE();
/* USER CODE BEGIN TIM4_MspDeInit 1 */
/* USER CODE END TIM4_MspDeInit 1 */
}
}
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */

224
app/MDK-ARM/app.uvguix.29643
File diff suppressed because it is too large
View File

316
app/MDK-ARM/app.uvoptx
File diff suppressed because it is too large
View File

88
app/MDK-ARM/app.uvprojx

@ -339,7 +339,7 @@
<MiscControls>--diag_suppress=381 --diag_suppress=1 --diag_suppress=177 --diag_suppress=111 --diag_suppress=1295</MiscControls>
<Define>USE_HAL_DRIVER,STM32F407xx</Define>
<Undefine></Undefine>
<IncludePath>../Core/Inc;../LWIP/App;../LWIP/Target;../Middlewares/Third_Party/LwIP/src/include;../Middlewares/Third_Party/LwIP/system;../Drivers/STM32F4xx_HAL_Driver/Inc;../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy;../Middlewares/Third_Party/FreeRTOS/Source/include;../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS;../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F;../Drivers/BSP/Components/lan8742;../Middlewares/Third_Party/LwIP/src/include/netif/ppp;../Drivers/CMSIS/Device/ST/STM32F4xx/Include;../Middlewares/Third_Party/LwIP/src/include/lwip;../Middlewares/Third_Party/LwIP/src/include/lwip/apps;../Middlewares/Third_Party/LwIP/src/include/lwip/priv;../Middlewares/Third_Party/LwIP/src/include/lwip/prot;../Middlewares/Third_Party/LwIP/src/include/netif;../Middlewares/Third_Party/LwIP/src/include/compat/posix;../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa;../Middlewares/Third_Party/LwIP/src/include/compat/posix/net;../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys;../Middlewares/Third_Party/LwIP/src/include/compat/stdc;../Middlewares/Third_Party/LwIP/system/arch;../Drivers/CMSIS/Include;../../src</IncludePath>
<IncludePath>../Core/Inc;../LWIP/App;../LWIP/Target;../Middlewares/Third_Party/LwIP/src/include;../Middlewares/Third_Party/LwIP/system;../Drivers/STM32F4xx_HAL_Driver/Inc;../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy;../Middlewares/Third_Party/FreeRTOS/Source/include;../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS;../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F;../Drivers/BSP/Components/lan8742;../Middlewares/Third_Party/LwIP/src/include/netif/ppp;../Drivers/CMSIS/Device/ST/STM32F4xx/Include;../Middlewares/Third_Party/LwIP/src/include/lwip;../Middlewares/Third_Party/LwIP/src/include/lwip/apps;../Middlewares/Third_Party/LwIP/src/include/lwip/priv;../Middlewares/Third_Party/LwIP/src/include/lwip/prot;../Middlewares/Third_Party/LwIP/src/include/netif;../Middlewares/Third_Party/LwIP/src/include/compat/posix;../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa;../Middlewares/Third_Party/LwIP/src/include/compat/posix/net;../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys;../Middlewares/Third_Party/LwIP/src/include/compat/stdc;../Middlewares/Third_Party/LwIP/system/arch;../Drivers/CMSIS/Include;../../src;../../iflytop_microcontroller\sdk\stm32</IncludePath>
</VariousControls>
</Cads>
<Aads>
@ -414,6 +414,62 @@
<FilePath>../Core/Src/iwdg.c</FilePath>
</File>
<File>
<FileName>tim.c</FileName>
<FileType>1</FileType>
<FilePath>../Core/Src/tim.c</FilePath>
<FileOption>
<CommonProperty>
<UseCPPCompiler>2</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>1</IncludeInBuild>
<AlwaysBuild>2</AlwaysBuild>
<GenerateAssemblyFile>2</GenerateAssemblyFile>
<AssembleAssemblyFile>2</AssembleAssemblyFile>
<PublicsOnly>2</PublicsOnly>
<StopOnExitCode>11</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg>
</CommonProperty>
<FileArmAds>
<Cads>
<interw>2</interw>
<Optim>0</Optim>
<oTime>2</oTime>
<SplitLS>2</SplitLS>
<OneElfS>2</OneElfS>
<Strict>2</Strict>
<EnumInt>2</EnumInt>
<PlainCh>2</PlainCh>
<Ropi>2</Ropi>
<Rwpi>2</Rwpi>
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Cads>
</FileArmAds>
</FileOption>
</File>
<File>
<FileName>usart.c</FileName>
<FileType>1</FileType>
<FilePath>../Core/Src/usart.c</FilePath>
@ -1046,6 +1102,36 @@
</Files>
</Group>
<Group>
<GroupName>iflytop_microcontroller</GroupName>
<Files>
<File>
<FileName>fan.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\iflytop_microcontroller\fancontroler\stm32\fan.c</FilePath>
</File>
<File>
<FileName>math.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\iflytop_microcontroller\math\std\math.c</FilePath>
</File>
<File>
<FileName>pwm.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\iflytop_microcontroller\sdk\stm32\pwm.c</FilePath>
</File>
<File>
<FileName>stm32sdk.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\iflytop_microcontroller\sdk\stm32\stm32sdk.c</FilePath>
</File>
<File>
<FileName>zkey.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\iflytop_microcontroller\zkey\std\zkey.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>::CMSIS</GroupName>
</Group>
</Groups>

42
app/app.ioc

@ -31,30 +31,34 @@ Mcu.IP3=LWIP
Mcu.IP4=NVIC
Mcu.IP5=RCC
Mcu.IP6=SYS
Mcu.IP7=USART1
Mcu.IPNb=8
Mcu.IP7=TIM1
Mcu.IP8=TIM4
Mcu.IP9=USART1
Mcu.IPNb=10
Mcu.Name=STM32F407Z(E-G)Tx
Mcu.Package=LQFP144
Mcu.Pin0=PH0-OSC_IN
Mcu.Pin1=PH1-OSC_OUT
Mcu.Pin10=PB13
Mcu.Pin11=PA9
Mcu.Pin12=PA10
Mcu.Pin13=PA13
Mcu.Pin14=PA14
Mcu.Pin15=VP_FREERTOS_VS_CMSIS_V1
Mcu.Pin16=VP_IWDG_VS_IWDG
Mcu.Pin17=VP_LWIP_VS_Enabled
Mcu.Pin18=VP_SYS_VS_Systick
Mcu.Pin10=PB12
Mcu.Pin11=PB13
Mcu.Pin12=PA9
Mcu.Pin13=PA10
Mcu.Pin14=PA13
Mcu.Pin15=PA14
Mcu.Pin16=VP_FREERTOS_VS_CMSIS_V1
Mcu.Pin17=VP_IWDG_VS_IWDG
Mcu.Pin18=VP_LWIP_VS_Enabled
Mcu.Pin19=VP_SYS_VS_Systick
Mcu.Pin2=PC1
Mcu.Pin20=VP_TIM4_VS_ClockSourceINT
Mcu.Pin3=PA1
Mcu.Pin4=PA2
Mcu.Pin5=PA7
Mcu.Pin6=PC4
Mcu.Pin7=PC5
Mcu.Pin8=PB11
Mcu.Pin9=PB12
Mcu.PinsNb=19
Mcu.Pin8=PE9
Mcu.Pin9=PB11
Mcu.PinsNb=21
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32F407ZGTx
@ -101,6 +105,7 @@ PC4.Mode=RMII
PC4.Signal=ETH_RXD0
PC5.Mode=RMII
PC5.Signal=ETH_RXD1
PE9.Signal=S_TIM1_CH1
PH0-OSC_IN.Mode=HSE-External-Oscillator
PH0-OSC_IN.Signal=RCC_OSC_IN
PH1-OSC_OUT.Mode=HSE-External-Oscillator
@ -166,6 +171,13 @@ RCC.VCOI2SOutputFreq_Value=192000000
RCC.VCOInputFreq_Value=1000000
RCC.VCOOutputFreq_Value=336000000
RCC.VcooutputI2S=96000000
SH.S_TIM1_CH1.0=TIM1_CH1,PWM Generation1 CH1
SH.S_TIM1_CH1.ConfNb=1
TIM1.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
TIM1.IPParameters=Channel-PWM Generation1 CH1
TIM4.IPParameters=Prescaler,Period
TIM4.Period=65535
TIM4.Prescaler=168-1
USART1.IPParameters=VirtualMode
USART1.VirtualMode=VM_ASYNC
VP_FREERTOS_VS_CMSIS_V1.Mode=CMSIS_V1
@ -176,4 +188,6 @@ VP_LWIP_VS_Enabled.Mode=Enabled
VP_LWIP_VS_Enabled.Signal=LWIP_VS_Enabled
VP_SYS_VS_Systick.Mode=SysTick
VP_SYS_VS_Systick.Signal=SYS_VS_Systick
VP_TIM4_VS_ClockSourceINT.Mode=Internal
VP_TIM4_VS_ClockSourceINT.Signal=TIM4_VS_ClockSourceINT
board=custom

160
src/port.c

@ -1,79 +1,87 @@
// #include "port.h"
// #include <stdint.h>
// #include <stdio.h>
// #include "main.h"
// // #include "modbus_processer.h"
// #include "port.h"
// // #include "tim.h"
// #include "usart.h"
// //
// /**********************************************************************************************************************
// * ===================================================printf重定向=================================================== *
// **********************************************************************************************************************/
// int fputc(int ch, FILE* stream) {
// uint8_t c = ch;
// HAL_UART_Transmit(&DEBUG_UART, &c, 1, 100);
// return ch;
// }
// /***********************************************************************************************************************
// * ========================================================================================================= *
// ***********************************************************************************************************************/
// void port_do_debug_light_state(void) {
// static uint32_t lastprocess = 0;
// if (sys_haspassedms(lastprocess) > 300) {
// lastprocess = HAL_GetTick();
// HAL_GPIO_TogglePin(DEBUG_LIGHT_PORT, DEBUG_LIGHT_PIN);
// }
// }
// /***********************************************************************************************************************
// * =========================================================================================================== *
// ***********************************************************************************************************************/
#include "port.h"
// static uart_t m_uarts[] = {
// {&DEBUG_UART, 0},
// // {&MODBUS_UART, 0},
// };
// __weak void port_mock_on_uart_rx(uart_t* uart) {}
// static void uarts_start_receive(uart_t* uart) { HAL_UART_Receive_IT(uart->uarthandler, &uart->rxbuf, 1); }
// void HAL_UART_RxCpltCallback(UART_HandleTypeDef* huart) {
// for (size_t i = 0; i < sizeof(m_uarts) / sizeof(uart_t); i++) {
// if (m_uarts[i].uarthandler == huart) {
// port_mock_on_uart_rx(&m_uarts[i]);
// uarts_start_receive(&m_uarts[i]);
// return;
// }
// }
// }
// void HAL_UART_ErrorCallback(UART_HandleTypeDef* huart) {
// for (size_t i = 0; i < sizeof(m_uarts) / sizeof(uart_t); i++) {
// if (m_uarts[i].uarthandler == huart) {
// uarts_start_receive(&m_uarts[i]);
// return;
// }
// }
// }
// // export
// void port_uart_start_all_uart_receive(void) {
// for (size_t i = 0; i < sizeof(m_uarts) / sizeof(uart_t); i++) {
// uarts_start_receive(&m_uarts[i]);
// }
// }
#include <stdint.h>
#include <stdio.h>
// bool port_electric_relay_get_state(int relayindex) {
// /*
// example:
// if (relayindex == 1) {
// return GPIO_GET(C, 8, !!);
// }
// */
#include "main.h"
// #include "modbus_processer.h"
#include "port.h"
#include "tim.h"
#include "usart.h"
// return false;
// }
// void port_electric_relay_set_state(int relayindex, bool state) {
// /*
// example:
// if (relayindex == 1) {
// GPIO_SET(C, 8, !!, state);
// }
// */
// }
//
#include "../../../iflytop_microcontroller/sdk/stm32/pwm.h"
#include "../../../iflytop_microcontroller/sdk/stm32/stm32sdk.h"
#include "../iflytop_microcontroller/sdk/stm32/pwm.h"
#include "../iflytop_microcontroller/sdk/stm32/stm32sdk.h"
/**********************************************************************************************************************
* ===================================================printf重定向=================================================== *
**********************************************************************************************************************/
int fputc(int ch, FILE* stream) {
uint8_t c = ch;
HAL_UART_Transmit(&DEBUG_UART, &c, 1, 100);
return ch;
}
/***********************************************************************************************************************
* ========================================================================================================= *
***********************************************************************************************************************/
void port_do_debug_light_state(void) {
static uint32_t lastprocess = 0;
if (sys_haspassedms(lastprocess) > 300) {
lastprocess = HAL_GetTick();
HAL_GPIO_TogglePin(DEBUG_LIGHT_PORT, DEBUG_LIGHT_PIN);
}
}
/***********************************************************************************************************************
* =========================================================================================================== *
***********************************************************************************************************************/
static uart_t m_uarts[] = {
{&DEBUG_UART, 0},
// {&MODBUS_UART, 0},
};
__weak void port_mock_on_uart_rx(uart_t* uart) {}
static void uarts_start_receive(uart_t* uart) { HAL_UART_Receive_IT(uart->uarthandler, &uart->rxbuf, 1); }
void HAL_UART_RxCpltCallback(UART_HandleTypeDef* huart) {
for (size_t i = 0; i < sizeof(m_uarts) / sizeof(uart_t); i++) {
if (m_uarts[i].uarthandler == huart) {
port_mock_on_uart_rx(&m_uarts[i]);
uarts_start_receive(&m_uarts[i]);
return;
}
}
}
void HAL_UART_ErrorCallback(UART_HandleTypeDef* huart) {
for (size_t i = 0; i < sizeof(m_uarts) / sizeof(uart_t); i++) {
if (m_uarts[i].uarthandler == huart) {
uarts_start_receive(&m_uarts[i]);
return;
}
}
}
// export
void port_uart_start_all_uart_receive(void) {
for (size_t i = 0; i < sizeof(m_uarts) / sizeof(uart_t); i++) {
uarts_start_receive(&m_uarts[i]);
}
}
bool port_electric_relay_get_state(int relayindex) {
/*
example:
if (relayindex == 1) {
return GPIO_GET(C, 8, !!);
}
*/
return false;
}
void port_electric_relay_set_state(int relayindex, bool state) {
/*
example:
if (relayindex == 1) {
GPIO_SET(C, 8, !!, state);
}
*/
}

58
src/port.h

@ -1,29 +1,35 @@
// #pragma once
// #include <stdbool.h>
// #include <stdint.h>
// #include <stdio.h>
// // #include "tim.h"
// #include "usart.h"
// #include "zboard.h"
// #define GPIO_SET(port, pin, mirror, _state) \
// HAL_GPIO_WritePin(GPIO##port, GPIO_PIN_##pin, mirror _state ? GPIO_PIN_SET : GPIO_PIN_RESET);
// #define GPIO_GET(port, pin, mirror) (mirror(HAL_GPIO_ReadPin(GPIO##port, GPIO_PIN_##pin) == GPIO_PIN_SET))
// /***********************************************************************************************************************
// * ========================================================================================================= *
// ***********************************************************************************************************************/
// void port_do_debug_light_state(void);
#pragma once
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
// /***********************************************************************************************************************
// * =======================================================UART======================================================== *
// ***********************************************************************************************************************/
// typedef struct {
// UART_HandleTypeDef* uarthandler;
// uint8_t rxbuf;
// } uart_t;
// void port_mock_on_uart_rx(uart_t* uart);
// void port_uart_start_all_uart_receive(void);
#include "tim.h"
#include "usart.h"
#include "zboard.h"
// bool port_electric_relay_get_state(int relayindex);
// void port_electric_relay_set_state(int relayindex, bool state);
#define GPIO_SET(port, pin, mirror, _state) \
HAL_GPIO_WritePin(GPIO##port, GPIO_PIN_##pin, mirror _state ? GPIO_PIN_SET : GPIO_PIN_RESET);
// static inline bool port_get_gpio_int(int index) { return false; }
#define GPIO_GET(port, pin, mirror) (mirror(HAL_GPIO_ReadPin(GPIO##port, GPIO_PIN_##pin) == GPIO_PIN_SET))
/***********************************************************************************************************************
* ========================================================================================================= *
***********************************************************************************************************************/
void port_do_debug_light_state(void);
/***********************************************************************************************************************
* =======================================================UART======================================================== *
***********************************************************************************************************************/
typedef struct {
UART_HandleTypeDef* uarthandler;
uint8_t rxbuf;
} uart_t;
void port_mock_on_uart_rx(uart_t* uart);
void port_uart_start_all_uart_receive(void);
bool port_electric_relay_get_state(int relayindex);
void port_electric_relay_set_state(int relayindex, bool state);
static inline bool port_get_gpio_int(int index) {
return false;
}

1
src/usermain.c

@ -12,6 +12,7 @@
void user_main() {
while (1) {
port_do_debug_light_state();
HAL_IWDG_Refresh(&hiwdg);
}
}

24
src/zboard.h

@ -1,4 +1,5 @@
#pragma once
#define VERSION_MAIN_ID 1
#define VERSION_SUB_ID 1
@ -8,7 +9,30 @@
#define DEBUG_UART huart1 //直接使用指令串口作为调试串口
#define DEBUG_LIGHT_PORT GPIOB
#define DEBUG_LIGHT_PIN GPIO_PIN_5
/***********************************************************************************************************************
* =========================================================================================================
***********************************************************************************************************************/
#define US_TIMER htim4
/***********************************************************************************************************************
* ============================-----==========================485MODBUS======================================================= *
***********************************************************************************************************************/
#define MODBUS_DEVICE_ID 0x01
#define kFunctionCode_Check 104
//usart.c中对应的位置
#define modbus_baundrate 115200
/*modebus判断一帧是以是否3.5byte时间内是否收到新的数据*/
#define kmodbus_baundrate_one_packet_delay_us ((1000000 / (modbus_baundrate / 8) + 1) * 3) // 211
#define MODBUS_UART huart2
#define kmodbus_processer_rx_buf_size 128
#define kmodbus_processer_tx_buf_size 128
/***********************************************************************************************************************
* =========================================================================================================== *
***********************************************************************************************************************/
#define FAN1_PWM_TIMER htim1
#define FAN1_PWM_TIMER_CHANNEL TIM_CHANNEL_1
#define FAN1_FB_GPIO_PORT GPIOA
#define FAN1_FB_PIN GPIO_PIN_8
Loading…
Cancel
Save