Changeset - bb703e19f242
[Not reviewed]
default
0 6 2
Ethan Zonca - 9 years ago 2016-10-12 23:03:30
ez@ethanzonca.com
Add link-time optimization; enable RTC and actually use power-saving mode on idle
8 files changed with 129 insertions and 32 deletions:
0 comments (0 inline, 0 general)
Makefile
Show inline comments
 
@@ -2,25 +2,25 @@
 
# #####################################
 
#
 
# Part of the uCtools project
 
# uctools.github.com
 
#
 
#######################################
 
# user configuration:
 
#######################################
 

	
 
BUILD_NUMBER ?= 0
 

	
 
# SOURCES: list of sources in the user application
 
SOURCES = main.c  adc.c gpio.c i2c.c interrupts.c uart.c  gps.c system_stm32f0xx.c system.c wspr.c
 
SOURCES = main.c  adc.c gpio.c i2c.c interrupts.c uart.c  gps.c system_stm32f0xx.c system.c wspr.c rtc.c
 
# TARGET: name of the user application
 
TARGET = wsprhab-b$(BUILD_NUMBER)
 

	
 
# BUILD_DIR: directory to place output files in
 
BUILD_DIR = build
 

	
 
# LD_SCRIPT: location of the linker script
 
LD_SCRIPT = STM32F031G6_FLASH.ld
 

	
 
# USER_DEFS user defined macros
 
USER_DEFS = -D HSE_VALUE=16000000
 
USER_DEFS += -D WSPRHAB_BUILD_NUMBER=$(BUILD_NUMBER)
 
@@ -29,29 +29,29 @@ USER_DEFS += -D WSPRHAB_BUILD_NUMBER=$(B
 
USER_INCLUDES =
 

	
 
# USB_INCLUDES: includes for the usb library
 
# USB_INCLUDES = -IMiddlewares/ST/STM32_USB_Device_Library/Core/Inc
 
#USB_INCLUDES += -IMiddlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc
 

	
 
SI5351_INCLUDES = -Ilib/si5351
 

	
 
JTENCODE_INCLUDES = -Ilib/jtencode
 

	
 
# USER_CFLAGS: user C flags (enable warnings, enable debug info)
 
USER_CFLAGS = -Wall -g -ffunction-sections -fdata-sections -Os -fno-common --function-sections -fdata-sections 
 
#USER_CFLAGS += -flto
 
USER_CFLAGS += -flto
 

	
 
# USER_LDFLAGS:  user LD flags
 
USER_LDFLAGS = -fno-exceptions -ffunction-sections -fdata-sections -Wl,--gc-sections 
 
#USER_LDFLAGS += -flto
 
USER_LDFLAGS += -flto
 
USER_LDFLAGS += --static
 
#USER_LDFLAGS += -nostartfiles 
 

	
 
# TARGET_DEVICE: device to compile for
 
TARGET_DEVICE = STM32F031x6
 

	
 
#######################################
 
# end of user configuration
 
#######################################
 
#
 
#######################################
 
# binaries
inc/gpio.h
Show inline comments
 
#ifndef __gpio_H
 
#define __gpio_H
 
 
#include "stm32f0xx_hal.h"
 
 
 
enum _blinkrate
 
{
 
    BLINK_FAST = 50,
 
    BLINK_MED = 250, 
 
    BLINK_SLOW = 500
 
    BLINK_SLOW = 1000
 
};
 
 
 
#define OSC_EN_Pin GPIO_PIN_1
 
#define OSC_EN_GPIO_Port GPIOF
 
#define OSC_NOTEN OSC_EN_GPIO_Port , OSC_EN_Pin
 
 
#define GPS_NEN_Pin GPIO_PIN_0
 
#define GPS_NEN_GPIO_Port GPIOF
 
#define GPS_NOTEN GPS_NEN_GPIO_Port , GPS_NEN_Pin
 
 
#define VBATT_SENSE_Pin GPIO_PIN_6
inc/rtc.h
Show inline comments
 
new file 100644
 
#ifndef __rtc_H
 
#define __rtc_H
 
 
 
void rtc_init(void);
 
 
#endif /*__ rtc_H */
inc/stm32f0xx_hal_conf.h
Show inline comments
 
@@ -16,25 +16,25 @@
 
//#define HAL_CEC_MODULE_ENABLED   
 
//#define HAL_COMP_MODULE_ENABLED   
 
//#define HAL_CRC_MODULE_ENABLED   
 
//#define HAL_CRYP_MODULE_ENABLED   
 
//#define HAL_TSC_MODULE_ENABLED   
 
//#define HAL_DAC_MODULE_ENABLED   
 
#define HAL_I2C_MODULE_ENABLED
 
//#define HAL_I2S_MODULE_ENABLED   
 
//#define HAL_IWDG_MODULE_ENABLED   
 
//#define HAL_LCD_MODULE_ENABLED   
 
//#define HAL_LPTIM_MODULE_ENABLED   
 
//#define HAL_RNG_MODULE_ENABLED   
 
//#define HAL_RTC_MODULE_ENABLED   
 
#define HAL_RTC_MODULE_ENABLED   
 
//#define HAL_SPI_MODULE_ENABLED   
 
#define HAL_TIM_MODULE_ENABLED   
 
#define HAL_UART_MODULE_ENABLED
 
#define HAL_USART_MODULE_ENABLED   
 
//#define HAL_IRDA_MODULE_ENABLED   
 
//#define HAL_SMARTCARD_MODULE_ENABLED   
 
//#define HAL_SMBUS_MODULE_ENABLED   
 
//#define HAL_WWDG_MODULE_ENABLED   
 
//#define HAL_PCD_MODULE_ENABLED   
 
#define HAL_CORTEX_MODULE_ENABLED
 
#define HAL_DMA_MODULE_ENABLED
 
#define HAL_FLASH_MODULE_ENABLED
src/main.c
Show inline comments
 
//
 
// WSPRHAB: Minimal high-altitude balloon tracker with WSPR telemetry
 
//
 
 
#include "stm32f0xx_hal.h"
 
#include "adc.h"
 
#include "system.h"
 
#include "i2c.h"
 
#include "uart.h"
 
#include "gpio.h"
 
#include "wspr.h"
 
#include "rtc.h"
 
#include "gps.h"
 
 
 
// We have access to the 1PPS pin of the gps... could have trim routine for internal oscillator based on this when we have a fix
 
// Probabl wake up 1 minute early -- 0.45min possible +/- on wakeup time with 15min sync intervals
 
 
 
enum _state
 
{
 
    SYSTEM_IDLE = 0, // awaiting RTC interrupt for wakeup TODO wake up before scheduled time to get fix?
 
    SYSTEM_GPSACQ, // RTC interrupted
 
    SYSTEM_WSPRTX, // Wait for timeslot and actually transmit the message
 
@@ -25,24 +26,25 @@ enum _state
 
 
static void __calc_gridloc(char *dst, double lat, double lon);
 
static void ledpulse(void);
 
 
uint32_t statled_ontime = 0;
 
 
 
int main(void)
 
{
 
    HAL_Init();
 
 
    sysclk_init();
 
    rtc_init();
 
    gpio_init();
 
    adc_init();
 
    i2c_init();
 
    wspr_init();
 
 
    uint32_t led_timer = HAL_GetTick();
 
 
    led_blink(4);
 
 
    uint16_t blink_rate = BLINK_FAST;
 
    uint8_t state = SYSTEM_GPSACQ;
 
 
@@ -88,62 +90,66 @@ int main(void)
 
            gps_polltimer = HAL_GetTick();
 
        }
 
 
 
 
        switch(state)
 
        {
 
 
            // Idling: sleep and wait for RTC timeslot trigger
 
            case SYSTEM_IDLE:
 
            {
 
                blink_rate = BLINK_SLOW;
 
                HAL_PWR_EnterSLEEPMode(0, PWR_SLEEPENTRY_WFI);
 
                // Wait for RTC wakeup interrupt
 
                //wfi();
 
                //enter_sleep();
 
 
                // Somehow go to another state when we get an interrupt
 
//                state = SYSTEM_GPSACQ;
 
            } break;
 
 
 
            // Attempt to acquire GPS fix
 
            case SYSTEM_GPSACQ:
 
            {
 
                blink_rate = BLINK_FAST;
 
 
                if(!gps_ison())
 
                {
 
                	fix_acq_starttime = HAL_GetTick();
 
                    gps_poweron(); // power on and initialize GPS module
 
                }
 
 
                if(gps_getdata()->fixtype > 0 && gps_getdata()->pdop < 5)
 
                // If 3d fix with a decent enough precision
 
                if( ((gps_getdata()->fixtype == 2) || (gps_getdata()->fixtype == 3)) && gps_getdata()->pdop < 10)
 
                {
 
                    // Disable GPS module
 
                    gps_poweroff();
 
 
                    // TODO: Set RTC from GPS time
 
 
                    // TODO: Set RTC for countdown to next transmission timeslot!
 
 
                    // TODO: Set wspr countdown timer for this transmission!
 
                    fix_acq_starttime = 0;
 
                    state = SYSTEM_WSPRTX;
 
                }
 
                // If no fix in 2 minutes
 
                else if(HAL_GetTick() - fix_acq_starttime > 120000)
 
                // If no decent fix in 3 minutes
 
                else if(HAL_GetTick() - fix_acq_starttime > 60000 * 3)
 
                {
 
                	  // Flash error code and go to idle probably? or just try forever?
 
                	// Flash error code and go to idle, try again next time
 
                	led_blink(4);
 
                    gps_poweroff();
 
                	state = SYSTEM_IDLE;
 
                }
 
            } break;
 
 
            
 
            // Wait for wspr timeslot and start transmitting
 
            case SYSTEM_WSPRTX:
 
            {
 
            	blink_rate = BLINK_SLOW;
 
                // Wait for wspr countdown timer to expire and go to tx
 
//                if(timeout_expired)
 
//                {
 
src/rtc.c
Show inline comments
 
new file 100644
 
//
 
// RTC: configure real-time clock
 
//
 
 
#include "stm32f0xx_hal.h"
 
#include "rtc.h"
 
 
 
RTC_HandleTypeDef hrtc;
 
 
static void Error_Handler(void)
 
{
 
	volatile crap = 1;
 
}
 
 
// Initialize RTC
 
void rtc_init(void)
 
{
 
        __HAL_RCC_RTC_ENABLE();
 
 
    
 
  RTC_TimeTypeDef sTime;
 
  RTC_DateTypeDef sDate;
 
  RTC_AlarmTypeDef sAlarm;
 
 
  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();
 
  }
 
 
  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_BCD) != HAL_OK)
 
  {
 
    Error_Handler();
 
  }
 
 
  sDate.WeekDay = RTC_WEEKDAY_MONDAY;
 
  sDate.Month = RTC_MONTH_JANUARY;
 
  sDate.Date = 0x1;
 
  sDate.Year = 0x0;
 
 
  if (HAL_RTC_SetDate(&hrtc, &sDate, RTC_FORMAT_BCD) != HAL_OK)
 
  {
 
    Error_Handler();
 
  }
 
 
    /**Enable the Alarm A 
 
    */
 
  sAlarm.AlarmTime.Hours = 0x0;
 
  sAlarm.AlarmTime.Minutes = 0x0;
 
  sAlarm.AlarmTime.Seconds = 0x0;
 
  sAlarm.AlarmTime.SubSeconds = 0x0;
 
  sAlarm.AlarmTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
 
  sAlarm.AlarmTime.StoreOperation = RTC_STOREOPERATION_RESET;
 
  sAlarm.AlarmMask = RTC_ALARMMASK_NONE;
 
  sAlarm.AlarmSubSecondMask = RTC_ALARMSUBSECONDMASK_ALL;
 
  sAlarm.AlarmDateWeekDaySel = RTC_ALARMDATEWEEKDAYSEL_DATE;
 
  sAlarm.AlarmDateWeekDay = 0x1;
 
  sAlarm.Alarm = RTC_ALARM_A;
 
  if (HAL_RTC_SetAlarm(&hrtc, &sAlarm, RTC_FORMAT_BCD) != HAL_OK)
 
  {
 
    Error_Handler();
 
  }
 
 
}
src/system.c
Show inline comments
 
@@ -23,40 +23,42 @@ void enter_deepsleep(void)
 
    // After wake-up from STOP reconfigure the PLL
 
    sysclk_init();
 
}
 

	
 

	
 
// Initialize system clocks
 
void sysclk_init(void)
 
{
 
    RCC_OscInitTypeDef RCC_OscInitStruct;
 
    RCC_ClkInitTypeDef RCC_ClkInitStruct;
 
    RCC_PeriphCLKInitTypeDef PeriphClkInit;
 

	
 
    RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSI14;
 
    RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSI14|RCC_OSCILLATORTYPE_LSI;
 
    RCC_OscInitStruct.HSIState = RCC_HSI_ON;
 
    RCC_OscInitStruct.HSI14State = RCC_HSI14_ON;
 
    RCC_OscInitStruct.HSICalibrationValue = 16;
 
    RCC_OscInitStruct.HSI14CalibrationValue = 16;
 
    RCC_OscInitStruct.LSIState = RCC_LSI_ON;
 
    RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
 
    HAL_RCC_OscConfig(&RCC_OscInitStruct);
 

	
 
    RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
 
                                |RCC_CLOCKTYPE_PCLK1;
 
    RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
 
    RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
 
    RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
 
    HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0);
 

	
 
    PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1|RCC_PERIPHCLK_I2C1;
 
    PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_SYSCLK; //RCC_USART1CLKSOURCE_PCLK1;
 
    PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_SYSCLK;
 
    PeriphClkInit.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;
 
    HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit);
 

	
 
    HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
 

	
 
    HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
 

	
 
    __SYSCFG_CLK_ENABLE();
 
    // SysTick_IRQn interrupt configuration
 
    HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
 
}
wsprhab.ioc
Show inline comments
 
@@ -26,156 +26,162 @@ Dma.USART1_TX.1.PeriphInc=DMA_PINC_DISAB
 
Dma.USART1_TX.1.Priority=DMA_PRIORITY_LOW
 
Dma.USART1_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority
 
File.Version=6
 
I2C1.IPParameters=Timing
 
I2C1.Timing=0x2000090E
 
KeepUserPlacement=false
 
Mcu.Family=STM32F0
 
Mcu.IP0=ADC
 
Mcu.IP1=DMA
 
Mcu.IP2=I2C1
 
Mcu.IP3=NVIC
 
Mcu.IP4=RCC
 
Mcu.IP5=SYS
 
Mcu.IP6=USART1
 
Mcu.IPNb=7
 
Mcu.IP5=RTC
 
Mcu.IP6=SYS
 
Mcu.IP7=USART1
 
Mcu.IPNb=8
 
Mcu.Name=STM32F031G(4-6)Ux
 
Mcu.Package=UFQFPN28
 
Mcu.Pin0=PF0-OSC_IN
 
Mcu.Pin1=PF1-OSC_OUT
 
Mcu.Pin10=PB6
 
Mcu.Pin11=PB7
 
Mcu.Pin12=VP_SYS_VS_Systick
 
Mcu.Pin12=VP_RTC_VS_RTC_Alarm_A_Intern
 
Mcu.Pin13=VP_SYS_VS_Systick
 
Mcu.Pin2=PA1
 
Mcu.Pin3=PA6
 
Mcu.Pin4=PB0
 
Mcu.Pin5=PA8
 
Mcu.Pin6=PA9
 
Mcu.Pin7=PA10
 
Mcu.Pin8=PA13
 
Mcu.Pin9=PA14
 
Mcu.PinsNb=13
 
Mcu.PinsNb=14
 
Mcu.UserConstants=
 
Mcu.UserName=STM32F031G6Ux
 
MxCube.Version=4.14.0
 
MxDb.Version=DB.4.0.140
 
MxCube.Version=4.16.0
 
MxDb.Version=DB.4.0.160
 
NVIC.DMA1_Channel2_3_IRQn=true\:0\:0\:false\:false\:true
 
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:false
 
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:false
 
NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:false
 
NVIC.SVC_IRQn=true\:0\:0\:false\:false\:false
 
NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true
 
NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true
 
PA1.GPIOParameters=GPIO_ModeDefaultEXTI
 
PA1.GPIO_ModeDefaultEXTI=GPIO_MODE_EVT_RISING
 
PA1.Locked=true
 
PA1.Signal=GPXTI1
 
PA10.Locked=true
 
PA10.Mode=I2C
 
PA10.Signal=I2C1_SDA
 
PA13.Locked=true
 
PA13.Mode=Serial-WireDebug
 
PA13.Mode=Serial_Wire
 
PA13.Signal=SYS_SWDIO
 
PA14.Mode=Serial-WireDebug
 
PA14.Mode=Serial_Wire
 
PA14.Signal=SYS_SWCLK
 
PA6.GPIOParameters=GPIO_Label,GPIO_PuPd,GPIO_Mode
 
PA6.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode
 
PA6.GPIO_Label=VBATT_SENSE
 
PA6.GPIO_Mode=GPIO_MODE_ANALOG
 
PA6.GPIO_PuPd=GPIO_NOPULL
 
PA6.Locked=true
 
PA6.Mode=IN6
 
PA6.Signal=ADC_IN6
 
PA8.GPIOParameters=GPIO_ModeDefaultOutputPP,GPIO_Label,GPIO_Speed,GPIO_PuPd
 
PA8.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
 
PA8.GPIO_Label=TCXO-EN
 
PA8.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP
 
PA8.GPIO_PuPd=GPIO_NOPULL
 
PA8.GPIO_Speed=GPIO_SPEED_LOW
 
PA8.GPIO_Speed=GPIO_SPEED_FREQ_LOW
 
PA8.Locked=true
 
PA8.Signal=GPIO_Output
 
PA9.Locked=true
 
PA9.Mode=I2C
 
PA9.Signal=I2C1_SCL
 
PB0.GPIOParameters=GPIO_ModeDefaultOutputPP,GPIO_Label,GPIO_Speed,GPIO_PuPd
 
PB0.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
 
PB0.GPIO_Label=LED_BLUE
 
PB0.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP
 
PB0.GPIO_PuPd=GPIO_NOPULL
 
PB0.GPIO_Speed=GPIO_SPEED_LOW
 
PB0.GPIO_Speed=GPIO_SPEED_FREQ_LOW
 
PB0.Locked=true
 
PB0.Signal=GPIO_Output
 
PB6.Locked=true
 
PB6.Mode=Asynchronous
 
PB6.Signal=USART1_TX
 
PB7.Locked=true
 
PB7.Mode=Asynchronous
 
PB7.Signal=USART1_RX
 
PCC.Battery=Li-MnO2(CR2477)
 
PCC.Battery.Capacity=850.0
 
PCC.Battery.Compatibility=Yes
 
PCC.Battery.InParallel=1
 
PCC.Battery.InSeries=1
 
PCC.Battery.MaxContinuous=2.0
 
PCC.Battery.MaxPulseCurrent=10.0
 
PCC.Battery.NominalVoltage=3.0
 
PCC.Battery.SelfDischarge=0.12
 
PCC.Checker=false
 
PCC.Line=STM32F0x1
 
PCC.MCU=STM32F031G(4-6)Ux
 
PCC.MXVersion=4.14.0
 
PCC.MXVersion=4.16.0
 
PCC.PartNumber=STM32F031G6Ux
 
PCC.Seq0=0
 
PCC.Series=STM32F0
 
PCC.Temperature=25
 
PCC.Vdd=3.6
 
PF0-OSC_IN.GPIOParameters=GPIO_ModeDefaultOutputPP,GPIO_Label,GPIO_Speed,GPIO_PuPd
 
PF0-OSC_IN.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
 
PF0-OSC_IN.GPIO_Label=GPS_EN
 
PF0-OSC_IN.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP
 
PF0-OSC_IN.GPIO_PuPd=GPIO_NOPULL
 
PF0-OSC_IN.GPIO_Speed=GPIO_SPEED_LOW
 
PF0-OSC_IN.GPIO_Speed=GPIO_SPEED_FREQ_LOW
 
PF0-OSC_IN.Locked=true
 
PF0-OSC_IN.Signal=GPIO_Output
 
PF1-OSC_OUT.GPIOParameters=GPIO_ModeDefaultOutputPP,GPIO_Label,GPIO_Speed,GPIO_PuPd
 
PF1-OSC_OUT.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
 
PF1-OSC_OUT.GPIO_Label=OSC_EN
 
PF1-OSC_OUT.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP
 
PF1-OSC_OUT.GPIO_PuPd=GPIO_NOPULL
 
PF1-OSC_OUT.GPIO_Speed=GPIO_SPEED_LOW
 
PF1-OSC_OUT.GPIO_Speed=GPIO_SPEED_FREQ_LOW
 
PF1-OSC_OUT.Locked=true
 
PF1-OSC_OUT.Signal=GPIO_Output
 
ProjectManager.AskForMigrate=true
 
ProjectManager.BackupPrevious=false
 
ProjectManager.CompilerOptimize=2
 
ProjectManager.ComputerToolchain=false
 
ProjectManager.CoupleFile=true
 
ProjectManager.DeletePrevious=true
 
ProjectManager.DeviceId=STM32F031G6Ux
 
ProjectManager.FirmwarePackage=STM32Cube FW_F0 V1.5.0
 
ProjectManager.FirmwarePackage=STM32Cube FW_F0 V1.6.0
 
ProjectManager.FreePins=true
 
ProjectManager.HalAssertFull=false
 
ProjectManager.HeapSize=0x200
 
ProjectManager.KeepUserCode=true
 
ProjectManager.LastFirmware=true
 
ProjectManager.LibraryCopy=0
 
ProjectManager.PreviousToolchain=
 
ProjectManager.ProjectBuild=false
 
ProjectManager.ProjectFileName=wsprhab.ioc
 
ProjectManager.ProjectName=wsprhab
 
ProjectManager.StackSize=0x400
 
ProjectManager.TargetToolchain=TrueSTUDIO
 
ProjectManager.ToolChainLocation=
 
ProjectManager.UnderRoot=false
 
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false,2-MX_DMA_Init-DMA-false,3-MX_ADC_Init-ADC-false,4-MX_I2C1_Init-I2C1-false,5-MX_USART1_UART_Init-USART1-false
 
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false,2-MX_DMA_Init-DMA-false,3-MX_ADC_Init-ADC-false,4-MX_I2C1_Init-I2C1-false,5-MX_USART1_UART_Init-USART1-false,6-MX_RTC_Init-RTC-false
 
RCC.DATA_CACHE_ENABLE=1
 
RCC.FamilyName=M
 
RCC.I2c1ClockSelection=RCC_I2C1CLKSOURCE_SYSCLK
 
RCC.INSTRUCTION_CACHE_ENABLE=1
 
RCC.IPParameters=VDD_VALUE,FamilyName,PLLMCOFreq_Value,DATA_CACHE_ENABLE,INSTRUCTION_CACHE_ENABLE,PLLCLKFreq_Value,TimSysFreq_Value,I2c1ClockSelection,Usart1ClockSelection
 
RCC.IPParameters=DATA_CACHE_ENABLE,FamilyName,I2c1ClockSelection,INSTRUCTION_CACHE_ENABLE,PLLCLKFreq_Value,PLLMCOFreq_Value,TimSysFreq_Value,Usart1ClockSelection,VDD_VALUE
 
RCC.PLLCLKFreq_Value=8000000
 
RCC.PLLMCOFreq_Value=8000000
 
RCC.TimSysFreq_Value=8000000
 
RCC.Usart1ClockSelection=RCC_USART1CLKSOURCE_HSI
 
RCC.VDD_VALUE=3.3
 
SH.GPXTI1.0=GPIO_EXTI1
 
SH.GPXTI1.ConfNb=1
 
USART1.BaudRate=9600
 
USART1.DMADisableonRxErrorParam=UART_ADVFEATURE_DMA_DISABLEONRXERROR
 
USART1.IPParameters=BaudRate,OverrunDisableParam,DMADisableonRxErrorParam
 
USART1.OverrunDisableParam=UART_ADVFEATURE_OVERRUN_DISABLE
 
VP_RTC_VS_RTC_Alarm_A_Intern.Mode=Alarm A
 
VP_RTC_VS_RTC_Alarm_A_Intern.Signal=RTC_VS_RTC_Alarm_A_Intern
 
VP_SYS_VS_Systick.Mode=SysTick
 
VP_SYS_VS_Systick.Signal=SYS_VS_Systick
 
board=wsprhab
0 comments (0 inline, 0 general)