<root>

<build>
<compiler exe="$(appdir)compilers\STARM\batch\stm32comp.bat" params="&quot;$(target)&quot; &quot;$(outdir)&quot; &quot;$(chipalt)&quot; &quot;$(family)&quot; &quot;$(lscript)&quot; &quot;$(clock)&quot; &quot;$(romsize)&quot; &quot;$(ramsize)&quot;" />
<linker exe="$(appdir)tools\DoNothing\DoNothing.exe" params="" />
<programmer exe="$(appdir)compilers\STARM\batch\driveprog.bat" params="&quot;$(outdir)&quot; &quot;$(target)&quot; $(devname)" />
</build>

<device file = '32F051Discovery'
		name='32F051R8'
		namealt='32F051x8'
		product='ARM'
		family='F0'
		bits='32' >

    <parameters>
        <lscript value = 'stm32f.ld' />
        <romsize value = '64K' />
        <ramsize value = '8K' />
	<devname value = 'DIS_F' />
    </parameters>

    <clock max_speed='32000000' master_divider='1' default='8000000' />
    
    <memory >
        <flash bytes='65536' />
        <ram bytes='8192' />
    </memory>

    <configuration address='0' mult='1' >
        <format >
            <dword address='RCC_OSC_TYPE' value='0' />
            <dword address='RCC_PLL_SRC' value='1' />
			<dword address='RCC_PRE_DIV' value='2' />
			<dword address='RCC_PLL_MUL' value='12' />
			<dword address='RCC_SYSCLK_SRC' value='2' />
			<dword address='RCC_AHB_PRE' value='1' />
			<dword address='RCC_APB1_PRE' value='1' />
			<dword address='FLASH_LTNC' value='1' />

        </format>
        <setting />
        <settings >
            <setting name='Osc select (HSI, HSE, EXT)' offset='0' mask='3' bits='2' hint='Osc select (HSI, HSE, EXT)' >
				<option name='HSI' value='0' />
                <option name='HSE' value='1' />
				<option name='EXT' value='3' />
            </setting>
            <setting name='PLL Source (OFF, HSI, HSE)' offset='32' mask='3' bits='2' hint='PLL Source (OFF, HSI, HSE)' >
				<option name='OFF' value='0' />
                <option name='HSI/2' value='1' />
				<option name='HSE/EXT' value='2' />
            </setting>
            <setting name='HSE/EXT source divider' offset='64' mask='0x1F' bits='5' hint='HSE/EXT source divider' >
				<option name='/1' value='1' />
				<option name='/2' value='2' />
				<option name='/3' value='3' />
				<option name='/4' value='4' />
				<option name='/5' value='5' />
				<option name='/6' value='6' />
				<option name='/7' value='7' />
				<option name='/8' value='8' />
				<option name='/9' value='9' />
				<option name='/10' value='10' />
				<option name='/11' value='11' />
				<option name='/12' value='12' />
				<option name='/13' value='13' />
				<option name='/14' value='14' />
				<option name='/15' value='15' />
				<option name='/16' value='16' />
			</setting>
            <setting name='PLL multiplier' offset='96' mask='0x01F' bits='5' hint='PLL multiplier' >
				<option name='x2' value='2' />
				<option name='x3' value='3' />
				<option name='x4' value='4' />
				<option name='x5' value='5' />
				<option name='x6' value='6' />
				<option name='x7' value='7' />
				<option name='x8' value='8' />
				<option name='x9' value='9' />
				<option name='x10' value='10' />
				<option name='x11' value='11' />
				<option name='x12' value='12' />
				<option name='x13' value='13' />
				<option name='x14' value='14' />
				<option name='x15' value='15' />
				<option name='x16' value='16' />
			</setting>

            <setting name='System clock selector (HSI, HSE, PLL)' offset='128' mask='3' bits='2' hint='System clock selector (HSI, HSE, PLL)' >
				<option name='HSI internal oscillator selected as system clock' value='0' />
				<option name='HSE external oscillator selected as system clock' value='1' />
				<option name='PLL selected as system clock' value='2' />
			</setting>
			<setting name='HPRE (AHB prescaler)' offset='160' mask='0x3FF' bits='10' hint='HPRE (AHB prescaler)' >
				<option name='System clock not divided (/1)' value='1' />
				<option name='System clock divided by 2' value='2' />
				<option name='System clock divided by 4' value='4' />
				<option name='System clock divided by 8' value='8' />
				<option name='System clock divided by 16' value='16' />
				<option name='System clock divided by 64' value='64' />
				<option name='System clock divided by 128' value='128' />
				<option name='System clock divided by 256' value='256' />
				<option name='System clock divided by 512' value='512' />
			</setting>	
			<setting name='PPRE1 (APB1 Low speed prescaler)' offset='192' mask='0x1F' bits='5' hint='PPRE1 (APB1 Low speed prescaler)' >
				<option name='ABH clock not divided (/1)' value='1' />
				<option name='ABH clock divided by 2' value='2' />
				<option name='ABH clock divided by 4' value='4' />
				<option name='ABH clock divided by 8' value='8' />
				<option name='ABH clock divided by 16' value='16' />
			</setting>
			<setting name='LATENCY (Flash Latency)' offset='224' mask='7' bits='3' hint='LATENCY (Flash Latency)' >
				<option name='Zero wait states' value='0' />
				<option name='1 wait state' value='1' />
				<option name='2 wait states' value='2' />
			</setting>			
        </settings>
    </configuration>

    <pins sides='2' smd='0' >
    	<pin name='3V' />
		<pin name='GND' />
		<pin name='VBAT' />
    	<pin name='PC13' port='2' bit='13'  />
    	<pin name='PC14' port='2' bit='14'  />
    	<pin name='PC15' port='2' bit='15'  />
    	<pin name='PF0' port='5' bit='0'  />
    	<pin name='PF1' port='5' bit='1'  />
		<pin name='GND' />
		<pin name='NRST' />
		<pin name='PC0' port='2' bit='0' adc='10'  />
		<pin name='PC1' port='2' bit='1' adc='11'  />
		<pin name='PC2' port='2' bit='2' adc='12'  />
		<pin name='PC3' port='2' bit='3' adc='13'  />
		<pin name='PA0' port='0' bit='0' adc='0'  />
		<pin name='PA1' port='0' bit='1' adc='1'  />
		<pin name='PA2' port='0' bit='2' adc='2'  />
		<pin name='PA3' port='0' bit='3' adc='3'  />
		<pin name='PF4' port='5' bit='4'  />
		<pin name='PF5' port='5' bit='5'  />
		<pin name='PA4' port='0' bit='4' adc='4'  />
		<pin name='PA5' port='0' bit='5' adc='5'  />
		<pin name='PA6' port='0' bit='6' adc='6'  />
		<pin name='PA7' port='0' bit='7' adc='7'  />
    	<pin name='PC4' port='2' bit='4' adc='14'  />
    	<pin name='PC5' port='2' bit='5' adc='15'  />
		<pin name='PB0' port='1' bit='0' adc='8'  />
		<pin name='PB1' port='1' bit='1' adc='9'  />
		<pin name='PB2' port='1' bit='2'  />
		<pin name='PB10' port='1' bit='10'  />
		<pin name='PB11' port='1' bit='11'  />
		<pin name='PB12' port='1' bit='12'  />
		<pin name='GND' />
		<pin name='GND' />
    	<pin name='PB13' port='1' bit='13'  />
    	<pin name='PB14' port='1' bit='14'  />
    	<pin name='PB15' port='1' bit='15'  />
		<pin name='PC6' port='2' bit='6'  />
		<pin name='PC7' port='2' bit='7'  />
		<pin name='PC8' port='2' bit='8'  />
		<pin name='PC9' port='2' bit='9'  />		
		<pin name='PA8' port='0' bit='8'  />
		<pin name='PA9' port='0' bit='9'  />
		<pin name='PA10' port='0' bit='10'  />
		<pin name='PA11' port='0' bit='11'  />
		<pin name='PA12' port='0' bit='12'  />
		<pin name='PA13' port='0' bit='13'  />
		<pin name='PF6' port='5' bit='6'  />
		<pin name='PF7' port='5' bit='7'  />
		<pin name='PA14' port='0' bit='14'  />
		<pin name='PA15' port='0' bit='15'  />
		<pin name='PC10' port='2' bit='10'  />
		<pin name='PC11' port='2' bit='11'  />
		<pin name='PC12' port='2' bit='12'  />
		<pin name='PD2' port='3' bit='2'  />
		<pin name='PB3' port='1' bit='3'  />
		<pin name='PB4' port='1' bit='4'  />
		<pin name='PB5' port='1' bit='5'  />
		<pin name='PB6' port='1' bit='6'  />
		<pin name='PB7' port='1' bit='7'  />
		<pin name='BOOT0' />
		<pin name='VDD' />		
		<pin name='PB8' port='1' bit='8'  />
		<pin name='PB9' port='1' bit='9'  />
		<pin name='GND' />
		<pin name='5V' />
    </pins>
        
    <pwm regset='1' remappable='2' >
    	<timer>
			<option name='Fixed' value='1' count='8' />
    	</timer>
        <prescaler >
			<option name="1" value="1" />
			<option name="4" value="4" />
			<option name="16" value="16" />
			<option name="64" value="64" />
			<option name="256" value="256" />
			<option name="1024" value="1024" />
        </prescaler>
		<out name='TIM1_CH1' af0='2' port0='0' pin0='8' />
		<out name='TIM1_CH2' af0='2' port0='0' pin0='9' />
		<out name='TIM1_CH3' af0='2' port0='0' pin0='10' />
		<out name='TIM1_CH4' af0='2' port0='0' pin0='11' />
		
		<out name='TIM2_CH1' af0='2' port0='0' pin0='0' af1='2' port1='0' pin1='5' af2='2' port2='0' pin2='15' />
		<out name='TIM2_CH2' af0='2' port0='0' pin0='1' af1='2' port1='1' pin1='3' />
		<out name='TIM2_CH3' af0='2' port0='0' pin0='2' af1='2' port1='1' pin1='10' />
		<out name='TIM2_CH4' af0='2' port0='0' pin0='3' af1='2' port1='1' pin1='11' />
		
		<out name='TIM3_CH1' af0='1' port0='0' pin0='6' af1='1' port1='1' pin1='4' />
		<out name='TIM3_CH2' af0='0' port0='0' pin0='7' af1='1' port1='1' pin1='5' />
		<out name='TIM3_CH3' af0='1' port0='1' pin0='0' />
		<out name='TIM3_CH4' af0='1' port0='1' pin0='1' />
		
		<out name='TIM14_CH1' af0='4' port0='0' pin0='4' af1='4' port1='0' pin1='7' af2='0' port2='1' pin2='1' />
		
		<out name='TIM15_CH1' af0='0' port0='0' pin0='2' af1='1' port1='1' pin1='14' />
		<out name='TIM15_CH2' af0='0' port0='0' pin0='3' af1='1' port1='1' pin1='15' />
		<out name='TIM16_CH1' af0='5' port0='0' pin0='6' af1='2' port1='1' pin1='8' />
		<out name='TIM17_CH1' af0='5' port0='0' pin0='7' af1='2' port1='1' pin1='9' />
    </pwm>

    <adc type='2' bits='12' >
        <speed >
			<option name='PCLK/2' value='2' />
            <option name='PCLK/4' value='4' />
        </speed>
    </adc>

    <dac type='1' bits='12' >
        <vref>
            <option name='VDD' value='0' />
        </vref>
        <out port='0' pin='4' />
    </dac>
	
	<uart remappable='2' name='USART1' >
        <tx af0='1' port0='0' pin0='9'  af1='0' port1='1' pin1='6' />
        <rx af0='1' port0='0' pin0='10' af1='0' port1='1' pin1='7' />
    </uart>
	
    <uart remappable='2' name='USART2' >
        <tx af0='1' port0='0' pin0='2' af1='1' port1='0' pin1='14' />
        <rx af0='1' port0='0' pin0='3' af1='1' port1='0' pin1='15' />
    </uart>
   
    <spi remappable='3' name='SPI1' >
        <clk  af0='0' port0='0' pin0='5' af1='0' port1='1' pin1='3' />
        <miso af0='0' port0='0' pin0='6' af1='0' port1='1' pin1='4' />
        <mosi af0='0' port0='0' pin0='7' af1='0' port1='1' pin1='5' />
    </spi>
	
    <spi remappable='3' name='SPI2' >
        <clk  af0='0' port0='1' pin0='13' />
        <miso af0='0' port0='1' pin0='14' />
        <mosi af0='0' port0='1' pin0='15' />
    </spi>
	
    <interrupts >
		<interrupt ident='TMR2' reg='TMR2' type='timer16' name='Timer 2'
			handler='#ifndef MX_ISR_T2\n#define MX_ISR_T2\nvoid TIM2_IRQHandler(void)\n{\n\tHAL_TIM_IRQHandler(&(MX_HANDLE_TIM2));\n}\n\nvoid MX_ISR_TIM2()\n{\n\tFCM_%n();\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif\n'
			enable='MX_HANDLE_TIM2.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;\nMX_HANDLE_TIM2.Init.CounterMode=TIM_COUNTERMODE_UP;\nMX_HANDLE_TIM2.Init.RepetitionCounter=0;\n__HAL_RCC_TIM2_CLK_ENABLE();\nHAL_NVIC_SetPriority(TIM2_IRQn, 3, 0);\nHAL_NVIC_EnableIRQ(TIM2_IRQn);\nHAL_TIM_Base_Init(&(MX_HANDLE_TIM2));\nHAL_TIM_Base_Start_IT(&(MX_HANDLE_TIM2));\n'
			disable='HAL_NVIC_DisableIRQ(TIM2_IRQn);\n'
			global='\nTIM_HandleTypeDef MX_HANDLE_TIM2;\n' >
            <timer overflow='65536' extrange='0' />
            <options >
                <prescale name='Prescaler Rate' >
                    <entry name='1:1' value='MX_HANDLE_TIM2.Init.Prescaler = 1;\n' />
                    <entry name='1:4' value='MX_HANDLE_TIM2.Init.Prescaler = 4;\n' />
					<entry name='1:16' value='MX_HANDLE_TIM2.Init.Prescaler = 16;\n' />
                    <entry name='1:64' value='MX_HANDLE_TIM2.Init.Prescaler = 64;\n' />
                    <entry name='1:256' value='MX_HANDLE_TIM2.Init.Prescaler = 256;\n' />
					<entry name='1:1024' value='MX_HANDLE_TIM2.Init.Prescaler = 1024;\n' />
                </prescale>
                <rollover name='Rollover Value' >
                    <entry name='65536' min='1' max='65536' value='MX_HANDLE_TIM2.Instance=TIM2;\nMX_HANDLE_TIM2.Init.Period=%d-1;\n' />
                </rollover>
            </options>
        </interrupt>		
		<interrupt ident='TMR3' reg='TMR3' type='timer16' name='Timer 3'
			handler='#ifndef MX_ISR_T3\n#define MX_ISR_T3\nvoid TIM3_IRQHandler(void)\n{\n\tHAL_TIM_IRQHandler(&(MX_HANDLE_TIM3));\n}\n\nvoid MX_ISR_TIM3()\n{\n\tFCM_%n();\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif\n'
			enable='MX_HANDLE_TIM3.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;\nMX_HANDLE_TIM3.Init.CounterMode=TIM_COUNTERMODE_UP;\nMX_HANDLE_TIM3.Init.RepetitionCounter=0;\n__HAL_RCC_TIM3_CLK_ENABLE();\nHAL_NVIC_SetPriority(TIM3_IRQn, 3, 0);\nHAL_NVIC_EnableIRQ(TIM3_IRQn);\nHAL_TIM_Base_Init(&(MX_HANDLE_TIM3));\nHAL_TIM_Base_Start_IT(&(MX_HANDLE_TIM3));\n'
			disable='HAL_NVIC_DisableIRQ(TIM3_IRQn);\n'
			global='\nTIM_HandleTypeDef MX_HANDLE_TIM3;\n' >
            <timer overflow='65536' extrange='0' />
            <options >
                <prescale name='Prescaler Rate' >
                    <entry name='1:1' value='MX_HANDLE_TIM3.Init.Prescaler = 1;\n' />
                    <entry name='1:4' value='MX_HANDLE_TIM3.Init.Prescaler = 4;\n' />
					<entry name='1:16' value='MX_HANDLE_TIM3.Init.Prescaler = 16;\n' />
                    <entry name='1:64' value='MX_HANDLE_TIM3.Init.Prescaler = 64;\n' />
                    <entry name='1:256' value='MX_HANDLE_TIM3.Init.Prescaler = 256;\n' />
					<entry name='1:1024' value='MX_HANDLE_TIM3.Init.Prescaler = 1024;\n' />
                </prescale>
                <rollover name='Rollover Value' >
                    <entry name='65536' min='1' max='65536' value='MX_HANDLE_TIM3.Instance=TIM3;\nMX_HANDLE_TIM3.Init.Period=%d-1;\n' />
                </rollover>
            </options>
        </interrupt>
		<interrupt ident='TMR14' reg='TMR14' type='timer16' name='Timer 14'
			handler='#ifndef MX_ISR_T14\n#define MX_ISR_T14\nvoid TIM14_IRQHandler(void)\n{\n\tHAL_TIM_IRQHandler(&(MX_HANDLE_TIM14));\n}\n\nvoid MX_ISR_TIM14()\n{\n\tFCM_%n();\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif\n'
			enable='MX_HANDLE_TIM14.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;\nMX_HANDLE_TIM14.Init.CounterMode=TIM_COUNTERMODE_UP;\nMX_HANDLE_TIM14.Init.RepetitionCounter=0;\n__HAL_RCC_TIM14_CLK_ENABLE();\nHAL_NVIC_SetPriority(TIM14_IRQn, 3, 0);\nHAL_NVIC_EnableIRQ(TIM14_IRQn);\nHAL_TIM_Base_Init(&(MX_HANDLE_TIM14));\nHAL_TIM_Base_Start_IT(&(MX_HANDLE_TIM14));\n'
			disable='HAL_NVIC_DisableIRQ(TIM14_IRQn);\n'
			global='\nTIM_HandleTypeDef MX_HANDLE_TIM14;\n' >
            <timer overflow='65536' extrange='0' />
            <options >
                <prescale name='Prescaler Rate' >
                    <entry name='1:1' value='MX_HANDLE_TIM14.Init.Prescaler = 1;\n' />
                    <entry name='1:4' value='MX_HANDLE_TIM14.Init.Prescaler = 4;\n' />
					<entry name='1:16' value='MX_HANDLE_TIM14.Init.Prescaler = 16;\n' />
                    <entry name='1:64' value='MX_HANDLE_TIM14.Init.Prescaler = 64;\n' />
                    <entry name='1:256' value='MX_HANDLE_TIM14.Init.Prescaler = 256;\n' />
					<entry name='1:1024' value='MX_HANDLE_TIM14.Init.Prescaler = 1024;\n' />
                </prescale>
                <rollover name='Rollover Value' >
                    <entry name='65536' min='1' max='65536' value='MX_HANDLE_TIM14.Instance=TIM14;\nMX_HANDLE_TIM14.Init.Period=%d-1;\n' />
                </rollover>
            </options>
        </interrupt>
		<interrupt ident='TMR15' reg='TMR15' type='timer16' name='Timer 15'
			handler='#ifndef MX_ISR_T15\n#define MX_ISR_T15\nvoid TIM15_IRQHandler(void)\n{\n\tHAL_TIM_IRQHandler(&(MX_HANDLE_TIM15));\n}\n\nvoid MX_ISR_TIM15()\n{\n\tFCM_%n();\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif\n'
			enable='MX_HANDLE_TIM15.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;\nMX_HANDLE_TIM15.Init.CounterMode=TIM_COUNTERMODE_UP;\nMX_HANDLE_TIM15.Init.RepetitionCounter=0;\n__HAL_RCC_TIM15_CLK_ENABLE();\nHAL_NVIC_SetPriority(TIM15_IRQn, 3, 0);\nHAL_NVIC_EnableIRQ(TIM15_IRQn);\nHAL_TIM_Base_Init(&(MX_HANDLE_TIM15));\nHAL_TIM_Base_Start_IT(&(MX_HANDLE_TIM15));\n'
			disable='HAL_NVIC_DisableIRQ(TIM15_IRQn);\n'
			global='\nTIM_HandleTypeDef MX_HANDLE_TIM15;\n' >
            <timer overflow='65536' extrange='0' />
            <options >
                <prescale name='Prescaler Rate' >
                    <entry name='1:1' value='MX_HANDLE_TIM15.Init.Prescaler = 1;\n' />
                    <entry name='1:4' value='MX_HANDLE_TIM15.Init.Prescaler = 4;\n' />
					<entry name='1:16' value='MX_HANDLE_TIM15.Init.Prescaler = 16;\n' />
                    <entry name='1:64' value='MX_HANDLE_TIM15.Init.Prescaler = 64;\n' />
                    <entry name='1:256' value='MX_HANDLE_TIM15.Init.Prescaler = 256;\n' />
					<entry name='1:1024' value='MX_HANDLE_TIM15.Init.Prescaler = 1024;\n' />
                </prescale>
                <rollover name='Rollover Value' >
                    <entry name='65536' min='1' max='65536' value='MX_HANDLE_TIM15.Instance=TIM15;\nMX_HANDLE_TIM15.Init.Period=%d-1;\n' />
                </rollover>
            </options>
        </interrupt>		
		<interrupt ident='TMR16' reg='TMR16' type='timer16' name='Timer 16'
			handler='#ifndef MX_ISR_T16\n#define MX_ISR_T16\nvoid TIM16_IRQHandler(void)\n{\n\tHAL_TIM_IRQHandler(&(MX_HANDLE_TIM16));\n}\n\nvoid MX_ISR_TIM16()\n{\n\tFCM_%n();\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif\n'
			enable='MX_HANDLE_TIM16.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;\nMX_HANDLE_TIM16.Init.CounterMode=TIM_COUNTERMODE_UP;\nMX_HANDLE_TIM16.Init.RepetitionCounter=0;\n__HAL_RCC_TIM16_CLK_ENABLE();\nHAL_NVIC_SetPriority(TIM16_IRQn, 3, 0);\nHAL_NVIC_EnableIRQ(TIM16_IRQn);\nHAL_TIM_Base_Init(&(MX_HANDLE_TIM16));\nHAL_TIM_Base_Start_IT(&(MX_HANDLE_TIM16));\n'
			disable='HAL_NVIC_DisableIRQ(TIM16_IRQn);\n'
			global='\nTIM_HandleTypeDef MX_HANDLE_TIM16;\n' >
            <timer overflow='65536' extrange='0' />
            <options >
                <prescale name='Prescaler Rate' >
                    <entry name='1:1' value='MX_HANDLE_TIM16.Init.Prescaler = 1;\n' />
                    <entry name='1:4' value='MX_HANDLE_TIM16.Init.Prescaler = 4;\n' />
					<entry name='1:16' value='MX_HANDLE_TIM16.Init.Prescaler = 16;\n' />
                    <entry name='1:64' value='MX_HANDLE_TIM16.Init.Prescaler = 64;\n' />
                    <entry name='1:256' value='MX_HANDLE_TIM16.Init.Prescaler = 256;\n' />
					<entry name='1:1024' value='MX_HANDLE_TIM16.Init.Prescaler = 1024;\n' />
                </prescale>
                <rollover name='Rollover Value' >
                    <entry name='65536' min='1' max='65536' value='MX_HANDLE_TIM16.Instance=TIM16;\nMX_HANDLE_TIM16.Init.Period=%d-1;\n' />
                </rollover>
            </options>
        </interrupt>		
		<interrupt ident='TMR17' reg='TMR17' type='timer16' name='Timer 17'
			handler='#ifndef MX_ISR_T17\n#define MX_ISR_T17\nvoid TIM17_IRQHandler(void)\n{\n\tHAL_TIM_IRQHandler(&(MX_HANDLE_TIM17));\n}\n\nvoid MX_ISR_TIM17()\n{\n\tFCM_%n();\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif\n'
			enable='MX_HANDLE_TIM17.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;\nMX_HANDLE_TIM17.Init.CounterMode=TIM_COUNTERMODE_UP;\nMX_HANDLE_TIM17.Init.RepetitionCounter=0;\n__HAL_RCC_TIM17_CLK_ENABLE();\nHAL_NVIC_SetPriority(TIM17_IRQn, 3, 0);\nHAL_NVIC_EnableIRQ(TIM17_IRQn);\nHAL_TIM_Base_Init(&(MX_HANDLE__TIM17));\nHAL_TIM_Base_Start_IT(&(MX_HANDLE_TIM17));\n'
			disable='HAL_NVIC_DisableIRQ(TIM17_IRQn);\n'
			global='\nTIM_HandleTypeDef MX_HANDLE_TIM17;\n' >
            <timer overflow='65536' extrange='0' />
            <options >
                <prescale name='Prescaler Rate' >
                    <entry name='1:1' value='MX_HANDLE_TIM17.Init.Prescaler = 1;\n' />
                    <entry name='1:4' value='MX_HANDLE_TIM17.Init.Prescaler = 4;\n' />
					<entry name='1:16' value='MX_HANDLE_TIM17.Init.Prescaler = 16;\n' />
                    <entry name='1:64' value='MX_HANDLE_TIM17.Init.Prescaler = 64;\n' />
                    <entry name='1:256' value='MX_HANDLE_TIM17.Init.Prescaler = 256;\n' />
					<entry name='1:1024' value='MX_HANDLE_TIM17.Init.Prescaler = 1024;\n' />
                </prescale>
                <rollover name='Rollover Value' >
                    <entry name='65536' min='1' max='65536' value='MX_HANDLE_TIM17.Instance=TIM17;\nMX_HANDLE_TIM17.Init.Period=%d-1;\n' />
                </rollover>
            </options>
        </interrupt>
        <interrupt ident='EXTI0' type='pin' name='EXTI0' handler='#ifndef MX_ISR_INT0_1\n#define MX_ISR_INT0_1\nvoid EXTI0_1_IRQHandler(void)\n{\n\tHAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0);\n\tHAL_GPIO_EXTI_IRQHandler(GPIO_PIN_1);\n}\n#endif\n#ifndef MX_ISR_INT0\n#define MX_ISR_INT0\nvoid MX_ISR_EXTI0()\n{\n\tFCM_%n();\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif\n' enable='HAL_NVIC_SetPriority(EXTI0_1_IRQn, 2, 0);\nHAL_NVIC_EnableIRQ(EXTI0_1_IRQn);' disable='HAL_NVIC_DisableIRQ(EXTI0_1_IRQn);' >
			<options >
				<port name='Port' >
					<entry name='GPIOA' value='MX_EXTI_PinInit(GPIOA,\n\tGPIO_PIN_0,' />
					<entry name='GPIOB' value='MX_EXTI_PinInit(GPIOB,\n\tGPIO_PIN_0,' />
					<entry name='GPIOC' value='MX_EXTI_PinInit(GPIOC,\n\tGPIO_PIN_0,' />
					<entry name='GPIOF' value='MX_EXTI_PinInit(GPIOF,\n\tGPIO_PIN_0,' />
				</port>
                <edge name='Interrupt Edge Select' >
                    <entry name='Rising edge of INT' value='\n\tGPIO_MODE_IT_RISING,' />
                    <entry name='Falling edge of INT' value='\n\tGPIO_MODE_IT_FALLING,' />
					<entry name='Both edges of INT' value='\n\tGPIO_MODE_IT_RISING_FALLING,' />
                </edge>
				<edge name='Input Weak Bias' >
                    <entry name='No bias' value='\n\tGPIO_NOPULL);\n' />
                    <entry name='Pull up' value='\n\tGPIO_PULLUP);\n' />
					<entry name='Pull down' value='\n\tGPIO_PULLDOWN);\n' />
                </edge>
            </options>
        </interrupt>
        <interrupt ident='EXTI1' type='pin' name='EXTI1' handler='#ifndef MX_ISR_INT0_1\n#define MX_ISR_INT0_1\nvoid EXTI0_1_IRQHandler(void)\n{\n\tHAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0);\n\tHAL_GPIO_EXTI_IRQHandler(GPIO_PIN_1);\n}\n#endif\n#ifndef MX_ISR_INT1\n#define MX_ISR_INT1\nvoid MX_ISR_EXTI1()\n{\n\tFCM_%n();\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif\n' enable='HAL_NVIC_SetPriority(EXTI0_1_IRQn, 2, 0);\nHAL_NVIC_EnableIRQ(EXTI0_1_IRQn);' disable='HAL_NVIC_DisableIRQ(EXTI0_1_IRQn);' >
			<options >
				<port name='Port' >
					<entry name='GPIOA' value='MX_EXTI_PinInit(GPIOA,\n\tGPIO_PIN_1,' />
					<entry name='GPIOB' value='MX_EXTI_PinInit(GPIOB,\n\tGPIO_PIN_1,' />
					<entry name='GPIOC' value='MX_EXTI_PinInit(GPIOC,\n\tGPIO_PIN_1,' />
					<entry name='GPIOF' value='MX_EXTI_PinInit(GPIOF,\n\tGPIO_PIN_1,' />
				</port>
                <edge name='Interrupt Edge Select' >
                    <entry name='Rising edge of INT' value='\n\tGPIO_MODE_IT_RISING,' />
                    <entry name='Falling edge of INT' value='\n\tGPIO_MODE_IT_FALLING,' />
					<entry name='Both edges of INT' value='\n\tGPIO_MODE_IT_RISING_FALLING,' />
                </edge>
				<edge name='Input Weak Bias' >
                    <entry name='No bias' value='\n\tGPIO_NOPULL);\n' />
                    <entry name='Pull up' value='\n\tGPIO_PULLUP);\n' />
					<entry name='Pull down' value='\n\tGPIO_PULLDOWN);\n' />
                </edge>
            </options>
        </interrupt>
		<interrupt ident='EXTI2' type='pin' name='EXTI2' handler='#ifndef MX_ISR_INT2_3\n#define MX_ISR_INT2_3\nvoid EXTI2_3_IRQHandler(void)\n{\n\tHAL_GPIO_EXTI_IRQHandler(GPIO_PIN_2);\n\tHAL_GPIO_EXTI_IRQHandler(GPIO_PIN_3);\n}\n#endif\n#ifndef MX_ISR_INT2\n#define MX_ISR_INT2\nvoid MX_ISR_EXTI2()\n{\n\tFCM_%n();\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif\n' enable='HAL_NVIC_SetPriority(EXTI2_3_IRQn, 2, 0);\nHAL_NVIC_EnableIRQ(EXTI2_3_IRQn);' disable='HAL_NVIC_DisableIRQ(EXTI2_3_IRQn);' >
			<options >
				<port name='Port' >
					<entry name='GPIOA' value='MX_EXTI_PinInit(GPIOA,\n\tGPIO_PIN_2,' />
					<entry name='GPIOB' value='MX_EXTI_PinInit(GPIOB,\n\tGPIO_PIN_2,' />
					<entry name='GPIOC' value='MX_EXTI_PinInit(GPIOC,\n\tGPIO_PIN_2,' />
					<entry name='GPIOD' value='MX_EXTI_PinInit(GPIOD,\n\tGPIO_PIN_2,' />
				</port>
                <edge name='Interrupt Edge Select' >
                    <entry name='Rising edge of INT' value='\n\tGPIO_MODE_IT_RISING,' />
                    <entry name='Falling edge of INT' value='\n\tGPIO_MODE_IT_FALLING,' />
					<entry name='Both edges of INT' value='\n\tGPIO_MODE_IT_RISING_FALLING,' />
                </edge>
				<edge name='Input Weak Bias' >
                    <entry name='No bias' value='\n\tGPIO_NOPULL);\n' />
                    <entry name='Pull up' value='\n\tGPIO_PULLUP);\n' />
					<entry name='Pull down' value='\n\tGPIO_PULLDOWN);\n' />
                </edge>
            </options>
        </interrupt>
		<interrupt ident='EXTI3' type='pin' name='EXTI3' handler='#ifndef MX_ISR_INT2_3\n#define MX_ISR_INT2_3\nvoid EXTI2_3_IRQHandler(void)\n{\n\tHAL_GPIO_EXTI_IRQHandler(GPIO_PIN_2);\n\tHAL_GPIO_EXTI_IRQHandler(GPIO_PIN_3);\n}\n#endif\n#ifndef MX_ISR_INT3\n#define MX_ISR_INT3\nvoid MX_ISR_EXTI3()\n{\n\tFCM_%n();\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif\n' enable='HAL_NVIC_SetPriority(EXTI2_3_IRQn, 2, 0);\nHAL_NVIC_EnableIRQ(EXTI2_3_IRQn);' disable='HAL_NVIC_DisableIRQ(EXTI2_3_IRQn);' >
			<options >
				<port name='Port' >
					<entry name='GPIOA' value='MX_EXTI_PinInit(GPIOA,\n\tGPIO_PIN_3,' />
					<entry name='GPIOB' value='MX_EXTI_PinInit(GPIOB,\n\tGPIO_PIN_3,' />
					<entry name='GPIOC' value='MX_EXTI_PinInit(GPIOC,\n\tGPIO_PIN_3,' />
				</port>
                <edge name='Interrupt Edge Select' >
                    <entry name='Rising edge of INT' value='\n\tGPIO_MODE_IT_RISING,' />
                    <entry name='Falling edge of INT' value='\n\tGPIO_MODE_IT_FALLING,' />
					<entry name='Both edges of INT' value='\n\tGPIO_MODE_IT_RISING_FALLING,' />
                </edge>
				<edge name='Input Weak Bias' >
                    <entry name='No bias' value='\n\tGPIO_NOPULL);\n' />
                    <entry name='Pull up' value='\n\tGPIO_PULLUP);\n' />
					<entry name='Pull down' value='\n\tGPIO_PULLDOWN);\n' />
                </edge>
            </options>
        </interrupt>
        <interrupt ident='EXTI12' type='pin' name='EXTI12' handler='#ifndef MX_ISR_INT4_15\n#define MX_ISR_INT4_15\nvoid EXTI4_15_IRQHandler(void)\n{\n\tHAL_GPIO_EXTI_IRQHandler(GPIO_PIN_12);\n}\n#endif\n#ifndef MX_ISR_INT12\n#define MX_ISR_INT12\nvoid MX_ISR_EXTI12()\n{\n\tFCM_%n();\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif\n' enable='HAL_NVIC_SetPriority(EXTI4_15_IRQn, 2, 0);\nHAL_NVIC_EnableIRQ(EXTI4_15_IRQn);' disable='HAL_NVIC_DisableIRQ(EXTI4_15_IRQn);' >
			<options >
				<port name='Port' >
					<entry name='GPIOA' value='MX_EXTI_PinInit(GPIOA,\n\tGPIO_PIN_12,' />
					<entry name='GPIOB' value='MX_EXTI_PinInit(GPIOB,\n\tGPIO_PIN_12,' />
					<entry name='GPIOC' value='MX_EXTI_PinInit(GPIOC,\n\tGPIO_PIN_12,' />
				</port>
                <edge name='Interrupt Edge Select' >
                    <entry name='Rising edge of INT' value='\n\tGPIO_MODE_IT_RISING,' />
                    <entry name='Falling edge of INT' value='\n\tGPIO_MODE_IT_FALLING,' />
					<entry name='Both edges of INT' value='\n\tGPIO_MODE_IT_RISING_FALLING,' />
                </edge>
				<edge name='Input Weak Bias' >
                    <entry name='No bias' value='\n\tGPIO_NOPULL);\n' />
                    <entry name='Pull up' value='\n\tGPIO_PULLUP);\n' />
					<entry name='Pull down' value='\n\tGPIO_PULLDOWN);\n' />
                </edge>
            </options>
        </interrupt>
		<interrupt ident='RXINT1' type='comms' name='UART RXINT 1'
			handler='#ifndef MX_ISR_RX1\n#define MX_ISR_RX1\nvoid USART1_IRQHandler(void)\n{\n\tHAL_UART_IRQHandler(&(MX_HANDLE_UART1));\n\tHAL_UART_Receive_IT(&(MX_HANDLE_UART1), (uint8_t *)&(MX_HANDLE_UART1_RX_VAL), 1);\n}\n\nvoid MX_ISR_UART1()\n{\n\tFCM_%n();\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif\n'
			enable='HAL_NVIC_SetPriority(USART1_IRQn, 0, 1);\nHAL_NVIC_EnableIRQ(USART1_IRQn);\nMX_HANDLE_UART1_IRQ_EN = 1;\nHAL_UART_Receive_IT(&(MX_HANDLE_UART1), (uint8_t *)&(MX_HANDLE_UART1_RX_VAL), 1);\n'
			disable='HAL_NVIC_DisableIRQ(USART1_IRQn);\nMX_HANDLE_UART1_IRQ_EN = 0;\n'
			global = 'UART_HandleTypeDef MX_HANDLE_UART1;\nMX_UINT16 MX_HANDLE_UART1_RX_VAL, MX_HANDLE_UART1_IRQ_EN;\n' />	
		<interrupt ident='RXINT2' type='comms' name='UART RXINT 2'
			handler='#ifndef MX_ISR_RX2\n#define MX_ISR_RX2\nvoid USART2_IRQHandler(void)\n{\n\tHAL_UART_IRQHandler(&(MX_HANDLE_UART2));\n\tHAL_UART_Receive_IT(&(MX_HANDLE_UART2), (uint8_t *)&(MX_HANDLE_UART2_RX_VAL), 1);\n}\n\nvoid MX_ISR_UART2()\n{\n\tFCM_%n();\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif\n'
			enable='HAL_NVIC_SetPriority(USART2_IRQn, 0, 1);\nHAL_NVIC_EnableIRQ(USART2_IRQn);\nMX_HANDLE_UART2_IRQ_EN = 1;\nHAL_UART_Receive_IT(&(MX_HANDLE_UART2), (uint8_t *)&(MX_HANDLE_UART2_RX_VAL), 1);\n'
			disable='HAL_NVIC_DisableIRQ(USART2_IRQn);\nMX_HANDLE_UART2_IRQ_EN = 0;\n'
			global = 'UART_HandleTypeDef MX_HANDLE_UART2;\nMX_UINT16 MX_HANDLE_UART2_RX_VAL, MX_HANDLE_UART2_IRQ_EN;\n' />
    </interrupts>
    
</device>
<inline >
    <defines code='\n#define MX_CAL_STARM' />
    <directives code='' />
    <main >
        <start code='
int main()
{
	SystemClocksSetup();
	HAL_Init();
	// Enable ports ABC
	__HAL_RCC_GPIOA_CLK_ENABLE();
	__HAL_RCC_GPIOB_CLK_ENABLE();
	__HAL_RCC_GPIOC_CLK_ENABLE();
	__HAL_RCC_GPIOD_CLK_ENABLE();
	__HAL_RCC_GPIOF_CLK_ENABLE();
' />
        <end code='\tmainendloop: goto mainendloop;\n\treturn 0;\n}\n\n' />
        <init code='' />
    </main>
    <interrupt >
        <enable code='' />
        <start code='' />
        <end code='' />
        <init code='' />
    </interrupt>
    <config >
        <start code='//Configuration Start\n' />
        <body code='#define $(address) ($(value))\n' />
        <end code='//Configuration End\n\n' />
    </config>
</inline>
<test >
    <icd >
        <clock port0='1' pin0='1' />
        <data port0='1' pin0='0' />
    </icd>
</test>
</root>