Browse Source

add rtc support

board_v2_hardtest
zhaohe 9 months ago
parent
commit
ad357c2bdf
  1. 10
      .cproject
  2. 36
      .mxproject
  3. 4
      .settings/stm32cubeide.project.prefs
  4. 4
      .vscode/settings.json
  5. 2
      Core
  6. 2
      Drivers
  7. 2
      STM32F407VETX_FLASH.ld
  8. 52
      hand_acid_mainboard.ioc
  9. 2
      stm32halport
  10. 49
      uappbase/apphal/apphal.cpp
  11. 2
      uappbase/apphal/apphal.hpp
  12. 29
      usrc/service/app_core.cpp

10
.cproject

@ -122,16 +122,16 @@
</folderInfo> </folderInfo>
<fileInfo id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1853947771.1288276238" name="zcanreceiver.hpp" rcbsApplicability="disable" resourcePath="stm32components/zcanreceiver/zcanreceiver.hpp" toolsToInvoke=""/> <fileInfo id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1853947771.1288276238" name="zcanreceiver.hpp" rcbsApplicability="disable" resourcePath="stm32components/zcanreceiver/zcanreceiver.hpp" toolsToInvoke=""/>
<sourceEntries> <sourceEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="ucomponents"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="stm32halport"/>
<entry excluding="zcanreceiver/zcanreceiver.hpp|zcanreceiver/zcanreceiver.cpp" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="stm32components"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="stm32basic"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/> <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Middlewares"/> <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Middlewares"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="app_protocols"/> <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="app_protocols"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="stm32basic"/>
<entry excluding="zcanreceiver/zcanreceiver.hpp|zcanreceiver/zcanreceiver.cpp" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="stm32components"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="stm32halport"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="uappbase"/> <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="uappbase"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="ucomponents"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="usrc"/> <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="usrc"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/>
</sourceEntries> </sourceEntries>
</configuration> </configuration>
</storageModule> </storageModule>

36
.mxproject
File diff suppressed because it is too large
View File

4
.settings/stm32cubeide.project.prefs

@ -1,6 +1,6 @@
2F62501ED4689FB349E356AB974DBE57=E1D44A1E495B58081025CCE424330771
2F62501ED4689FB349E356AB974DBE57=1A37C75E31949FC1CF47D46CC4BFA318
635E684B79701B039C64EA45C3F84D30=C8B026EBE17C208F17FB66CE4235156C 635E684B79701B039C64EA45C3F84D30=C8B026EBE17C208F17FB66CE4235156C
66BE74F758C12D739921AEA421D593D3=1 66BE74F758C12D739921AEA421D593D3=1
8DF89ED150041C4CBC7CB9A9CAA90856=E1D44A1E495B58081025CCE424330771
8DF89ED150041C4CBC7CB9A9CAA90856=1A37C75E31949FC1CF47D46CC4BFA318
DC22A860405A8BF2F2C095E5B6529F12=EC6C4D369FD4F7EABFE17B3222B5F3A0 DC22A860405A8BF2F2C095E5B6529F12=EC6C4D369FD4F7EABFE17B3222B5F3A0
eclipse.preferences.version=1 eclipse.preferences.version=1

4
.vscode/settings.json

@ -88,7 +88,9 @@
"xutility": "cpp", "xutility": "cpp",
"xhash": "cpp", "xhash": "cpp",
"xmemory": "cpp", "xmemory": "cpp",
"xstring": "cpp"
"xstring": "cpp",
"stm32f4xx_hal_rtc.h": "c",
"stm32f4xx_hal_rtc_ex.h": "c"
}, },
"files.autoGuessEncoding": false, "files.autoGuessEncoding": false,
"files.encoding": "gb2312" "files.encoding": "gb2312"

2
Core

@ -1 +1 @@
Subproject commit e6b8750f142771f180e87203e8a8ab65ef4138b3
Subproject commit fe78220f807588b84f1a45712eacb4a5fded971e

2
Drivers

@ -1 +1 @@
Subproject commit 078acc813aab2a755e85f89f8d3b1f94174cfd1f
Subproject commit ec0007fadbdd5a34d2dd0f1fc86811675458f19f

2
STM32F407VETX_FLASH.ld

@ -39,7 +39,7 @@ ENTRY(Reset_Handler)
/* Highest address of the user mode stack */ /* Highest address of the user mode stack */
_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of "RAM" Ram type memory */ _estack = ORIGIN(RAM) + LENGTH(RAM); /* end of "RAM" Ram type memory */
_Min_Heap_Size = 0x1000; /* required amount of heap */
_Min_Heap_Size = 0x0; /* required amount of heap */
_Min_Stack_Size = 0x2000; /* required amount of stack */ _Min_Stack_Size = 0x2000; /* required amount of stack */
/* Memories definition */ /* Memories definition */

52
hand_acid_mainboard.ioc

@ -67,22 +67,23 @@ Mcu.CPN=STM32F407VET6
Mcu.Family=STM32F4 Mcu.Family=STM32F4
Mcu.IP0=CAN1 Mcu.IP0=CAN1
Mcu.IP1=CRC Mcu.IP1=CRC
Mcu.IP10=TIM1
Mcu.IP11=TIM3
Mcu.IP12=TIM6
Mcu.IP13=TIM7
Mcu.IP14=USART1
Mcu.IP15=USART2
Mcu.IP16=USART3
Mcu.IP10=SYS
Mcu.IP11=TIM1
Mcu.IP12=TIM3
Mcu.IP13=TIM6
Mcu.IP14=TIM7
Mcu.IP15=USART1
Mcu.IP16=USART2
Mcu.IP17=USART3
Mcu.IP2=DMA Mcu.IP2=DMA
Mcu.IP3=FREERTOS Mcu.IP3=FREERTOS
Mcu.IP4=IWDG Mcu.IP4=IWDG
Mcu.IP5=NVIC Mcu.IP5=NVIC
Mcu.IP6=RCC Mcu.IP6=RCC
Mcu.IP7=RNG Mcu.IP7=RNG
Mcu.IP8=SPI1
Mcu.IP9=SYS
Mcu.IPNb=17
Mcu.IP8=RTC
Mcu.IP9=SPI1
Mcu.IPNb=18
Mcu.Name=STM32F407V(E-G)Tx Mcu.Name=STM32F407V(E-G)Tx
Mcu.Package=LQFP100 Mcu.Package=LQFP100
Mcu.Pin0=PH0-OSC_IN Mcu.Pin0=PH0-OSC_IN
@ -101,11 +102,13 @@ Mcu.Pin2=PC0
Mcu.Pin20=VP_FREERTOS_VS_CMSIS_V1 Mcu.Pin20=VP_FREERTOS_VS_CMSIS_V1
Mcu.Pin21=VP_IWDG_VS_IWDG Mcu.Pin21=VP_IWDG_VS_IWDG
Mcu.Pin22=VP_RNG_VS_RNG Mcu.Pin22=VP_RNG_VS_RNG
Mcu.Pin23=VP_SYS_VS_tim11
Mcu.Pin24=VP_TIM1_VS_ClockSourceINT
Mcu.Pin25=VP_TIM3_VS_ClockSourceINT
Mcu.Pin26=VP_TIM6_VS_ClockSourceINT
Mcu.Pin27=VP_TIM7_VS_ClockSourceINT
Mcu.Pin23=VP_RTC_VS_RTC_Activate
Mcu.Pin24=VP_RTC_VS_RTC_Calendar
Mcu.Pin25=VP_SYS_VS_tim11
Mcu.Pin26=VP_TIM1_VS_ClockSourceINT
Mcu.Pin27=VP_TIM3_VS_ClockSourceINT
Mcu.Pin28=VP_TIM6_VS_ClockSourceINT
Mcu.Pin29=VP_TIM7_VS_ClockSourceINT
Mcu.Pin3=PA2 Mcu.Pin3=PA2
Mcu.Pin4=PA3 Mcu.Pin4=PA3
Mcu.Pin5=PA5 Mcu.Pin5=PA5
@ -113,7 +116,7 @@ Mcu.Pin6=PA6
Mcu.Pin7=PA7 Mcu.Pin7=PA7
Mcu.Pin8=PC4 Mcu.Pin8=PC4
Mcu.Pin9=PB10 Mcu.Pin9=PB10
Mcu.PinsNb=28
Mcu.PinsNb=30
Mcu.ThirdPartyNb=0 Mcu.ThirdPartyNb=0
Mcu.UserConstants= Mcu.UserConstants=
Mcu.UserName=STM32F407VETx Mcu.UserName=STM32F407VETx
@ -206,15 +209,15 @@ ProjectManager.FreePins=true
ProjectManager.HalAssertFull=true ProjectManager.HalAssertFull=true
ProjectManager.HeapSize=0x0000 ProjectManager.HeapSize=0x0000
ProjectManager.KeepUserCode=true ProjectManager.KeepUserCode=true
ProjectManager.LastFirmware=true
ProjectManager.LastFirmware=false
ProjectManager.LibraryCopy=1 ProjectManager.LibraryCopy=1
ProjectManager.MainLocation=Core/Src ProjectManager.MainLocation=Core/Src
ProjectManager.MultiThreaded=true ProjectManager.MultiThreaded=true
ProjectManager.NoMain=false ProjectManager.NoMain=false
ProjectManager.PreviousToolchain=STM32CubeIDE ProjectManager.PreviousToolchain=STM32CubeIDE
ProjectManager.ProjectBuild=false ProjectManager.ProjectBuild=false
ProjectManager.ProjectFileName=hand_acid_mainboard_re.ioc
ProjectManager.ProjectName=hand_acid_mainboard_re
ProjectManager.ProjectFileName=hand_acid_mainboard.ioc
ProjectManager.ProjectName=hand_acid_mainboard
ProjectManager.ProjectStructure= ProjectManager.ProjectStructure=
ProjectManager.RegisterCallBack= ProjectManager.RegisterCallBack=
ProjectManager.StackSize=0x2000 ProjectManager.StackSize=0x2000
@ -224,7 +227,7 @@ ProjectManager.ToolChainLocation=
ProjectManager.UAScriptAfterPath= ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath= ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=true ProjectManager.UnderRoot=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_USART1_UART_Init-USART1-false-HAL-true,5-MX_TIM3_Init-TIM3-false-HAL-true,6-MX_CRC_Init-CRC-false-HAL-true,7-MX_RNG_Init-RNG-false-HAL-true,8-MX_TIM7_Init-TIM7-false-HAL-true,9-MX_TIM6_Init-TIM6-false-HAL-true,10-MX_TIM1_Init-TIM1-false-HAL-true,11-MX_USART3_UART_Init-USART3-false-HAL-true,12-MX_CAN1_Init-CAN1-false-HAL-true,13-MX_SPI1_Init-SPI1-false-HAL-true,14-MX_USART2_UART_Init-USART2-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_USART1_UART_Init-USART1-false-HAL-true,5-MX_TIM3_Init-TIM3-false-HAL-true,6-MX_CRC_Init-CRC-false-HAL-true,7-MX_RNG_Init-RNG-false-HAL-true,8-MX_TIM7_Init-TIM7-false-HAL-true,9-MX_TIM6_Init-TIM6-false-HAL-true,10-MX_TIM1_Init-TIM1-false-HAL-true,11-MX_USART3_UART_Init-USART3-false-HAL-true,12-MX_CAN1_Init-CAN1-false-HAL-true,13-MX_SPI1_Init-SPI1-false-HAL-true,14-MX_USART2_UART_Init-USART2-false-HAL-true,15-MX_IWDG_Init-IWDG-false-HAL-true
RCC.48MHZClocksFreq_Value=48000000 RCC.48MHZClocksFreq_Value=48000000
RCC.AHBFreq_Value=144000000 RCC.AHBFreq_Value=144000000
RCC.APB1CLKDivider=RCC_HCLK_DIV4 RCC.APB1CLKDivider=RCC_HCLK_DIV4
@ -265,6 +268,11 @@ RCC.VCOI2SOutputFreq_Value=128000000
RCC.VCOInputFreq_Value=2000000 RCC.VCOInputFreq_Value=2000000
RCC.VCOOutputFreq_Value=288000000 RCC.VCOOutputFreq_Value=288000000
RCC.VcooutputI2S=64000000 RCC.VcooutputI2S=64000000
RTC.Date=1
RTC.Format=RTC_FORMAT_BCD
RTC.IPParameters=Format,Year,WeekDay,Date
RTC.WeekDay=RTC_WEEKDAY_MONDAY
RTC.Year=24
SH.GPXTI0.0=GPIO_EXTI0 SH.GPXTI0.0=GPIO_EXTI0
SH.GPXTI0.ConfNb=1 SH.GPXTI0.ConfNb=1
SH.GPXTI4.0=GPIO_EXTI4 SH.GPXTI4.0=GPIO_EXTI4
@ -301,6 +309,10 @@ VP_IWDG_VS_IWDG.Mode=IWDG_Activate
VP_IWDG_VS_IWDG.Signal=IWDG_VS_IWDG VP_IWDG_VS_IWDG.Signal=IWDG_VS_IWDG
VP_RNG_VS_RNG.Mode=RNG_Activate VP_RNG_VS_RNG.Mode=RNG_Activate
VP_RNG_VS_RNG.Signal=RNG_VS_RNG VP_RNG_VS_RNG.Signal=RNG_VS_RNG
VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled
VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate
VP_RTC_VS_RTC_Calendar.Mode=RTC_Calendar
VP_RTC_VS_RTC_Calendar.Signal=RTC_VS_RTC_Calendar
VP_SYS_VS_tim11.Mode=TIM11 VP_SYS_VS_tim11.Mode=TIM11
VP_SYS_VS_tim11.Signal=SYS_VS_tim11 VP_SYS_VS_tim11.Signal=SYS_VS_tim11
VP_TIM1_VS_ClockSourceINT.Mode=Internal VP_TIM1_VS_ClockSourceINT.Mode=Internal

2
stm32halport

@ -1 +1 @@
Subproject commit a0107dbac5d3ec2750b60b553097f5f7e1763ef7
Subproject commit 5fe45de21864dd3b53b0a8683f0067fa429d15a0

49
uappbase/apphal/apphal.cpp

@ -340,3 +340,52 @@ void AppHal::tmc_spi_init() {
#error "MOTOR_SPI_INDEX not supported" #error "MOTOR_SPI_INDEX not supported"
#endif #endif
} }
void AppHal::rtc_init() {
RTC_TimeTypeDef sTime = {0};
RTC_DateTypeDef sDate = {0};
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;
PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) {
Error_Handler();
}
__HAL_RCC_RTC_ENABLE();
/** Initialize RTC Only
*/
hrtc.Instance = RTC;
hrtc.Init.HourFormat = RTC_HOURFORMAT_24;
hrtc.Init.AsynchPrediv = 127;
hrtc.Init.SynchPrediv = 255;
hrtc.Init.OutPut = RTC_OUTPUT_DISABLE;
hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;
if (HAL_RTC_Init(&hrtc) != HAL_OK) {
Error_Handler();
}
/** Initialize RTC and set the Time and Date
*/
sTime.Hours = 0x0;
sTime.Minutes = 0x0;
sTime.Seconds = 0x0;
sTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
sTime.StoreOperation = RTC_STOREOPERATION_RESET;
if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BIN) != HAL_OK) {
Error_Handler();
}
sDate.WeekDay = 0x01;
sDate.Month = 0x1;
sDate.Date = 0x1;
sDate.Year = 0x24;
if (HAL_RTC_SetDate(&hrtc, &sDate, RTC_FORMAT_BIN) != HAL_OK) {
Error_Handler();
}
}

2
uappbase/apphal/apphal.hpp

@ -16,6 +16,8 @@ class AppHal {
static void MX_I2C1_Init(void) ; static void MX_I2C1_Init(void) ;
static void tmc_spi_init(); static void tmc_spi_init();
static void rtc_init();
}; };
} // namespace iflytop } // namespace iflytop

29
usrc/service/app_core.cpp

@ -176,25 +176,24 @@ void AppCore::test() {
#endif #endif
while (true) {
// 测试陶晶驰屏幕串口,通信通道是否工作正常
// 1. 下发指令(准备一个专门的测试UI),每接收到一条指令,上报一条指令
//
AppHal::rtc_init();
RTC_DateTypeDef GetData; // 获取日期结构体
RTC_TimeTypeDef GetTime; // 获取时间结构体
// 测试陶晶驰屏幕串口,烧录通道是否工作正常(单独提供一个镜像)
// 1. 切换到烧录模式
// 2.
while (true) {
/* Get the RTC current Time */
HAL_RTC_GetTime(&hrtc, &GetTime, RTC_FORMAT_BIN);
/* Get the RTC current Date */
HAL_RTC_GetDate(&hrtc, &GetData, RTC_FORMAT_BIN);
// RTC是否工作正常(测试掉电时间是否丢失)
// 读取RTC时间,并显示
/* Display date Format : yy/mm/dd */
ZLOGI(TAG, "%02d/%02d/%02d\r\n", 2000 + GetData.Year, GetData.Month, GetData.Date);
/* Display time Format : hh:mm:ss */
ZLOGI(TAG, "%02d:%02d:%02d\r\n", GetTime.Hours, GetTime.Minutes, GetTime.Seconds);
// USB功能(是否能够识别到U盘),识别到U盘并触发事件,然后打印消息
// ?
//
ZLOGI(TAG, "\r\n");
// WIFI,功能模块,WIFI串口接收到数据,WIFI串口上报数据
// ?
//
osDelay(1000);
} }
// // 配置初始化 // // 配置初始化

Loading…
Cancel
Save