led部分的bsp部分完成,接下来开始写驱动部分

This commit is contained in:
xqq27 2025-04-28 16:45:44 +08:00
parent c1adaf32a0
commit c74c46b5e0
13 changed files with 1068 additions and 181 deletions

View File

View File

View File

@ -31,7 +31,7 @@
*************************************************************************************/
void bsp_init(void)
{
// bsp_InitTimer();
bsp_InitTimer();
// bsp_usart_1_init(115200);
// bsp_Init();
}

114
Code/bsp/bsp.c.bak Normal file
View File

@ -0,0 +1,114 @@
/*
*********************************************************************************************************
*
* : BSP模块(For STM32F4XX)
* : bsp.c
* : V1.1
* : c文件可以 #include "bsp.h"
* bsp = Borad surport packet
* :
*
* V1.0 2013-03-01 armfly
* V1.1 2013-06-20 armfly
*
* Copyright (C), 2013-2014, www.armfly.com
*
*********************************************************************************************************
*/
#include "bsp.h"
__IO uint8_t ubCounter = 0x00;
// extern __IO uint32_t TimeOut;
/*
*********************************************************************************************************
* : bsp_Init
* : CPU寄存器和外设的寄存器并初始化一些全局变量
*
* :
*********************************************************************************************************
*/
void bsp_Init(void)
{
/*
ST固件库的启动文件已经执行了CPU系统时钟的初始化
CPU主时钟频率Flash访问速度和可选的外部SRAM FSMC初始化
168MHz system_stm32f4xx.c
*/
/* NVIC配置 分组2 */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
bsp_InitLed(); /* 初始LED指示灯端口 */
// bsp_InitUart(); /* 初始化串口 */
// bsp_InitKey(); /* 初始化按键 */
// bsp_InitTimer(); /* 初始化系统滴答定时器 */
/* 这里将SysTick的优先级设置为最高优先级 */
NVIC_SetPriority(SysTick_IRQn, 0x0);
}
/*
*********************************************************************************************************
* : bsp_RunPer10ms
* : 10ms被Systick中断调用1次 bsp_timer.c的定时中断服务程序
*
*
* :
*********************************************************************************************************
*/
void bsp_RunPer10ms(void)
{
// bsp_KeyScan();
}
/*
*********************************************************************************************************
* : bsp_RunPer1ms
* : 1ms被Systick中断调用1次 bsp_timer.c的定时中断服务程序
*
*
* :
*********************************************************************************************************
*/
void bsp_RunPer1ms(void)
{
/* 这个变量好像没有用担这个例子是来自官方 */
// if (TimeOut != 0x0)
// {
// TimeOut--;
// }
if (ubCounter < 250)
{
ubCounter++;
}
else
{
ubCounter = 0x00;
// bsp_LedToggle(LED1);
}
}
/*
*********************************************************************************************************
* : bsp_Idle
* : for和while循环程序体中需要插入 CPU_IDLE()
* CPU进入休眠模式的功能
*
* :
*********************************************************************************************************
*/
void bsp_Idle(void)
{
/* --- 喂狗 */
/* --- 让CPU进入休眠由Systick定时中断唤醒或者其他中断唤醒 */
/* 对于 emWin 图形库,可以插入图形库需要的轮询函数 */
//GUI_Exec();
/* 对于 uIP 协议实现可以插入uip轮询函数 */
}
/***************************** 安富莱电子 www.armfly.com (END OF FILE) *********************************/

View File

@ -1,50 +1,19 @@
#ifndef __BSP_GPIO_H__
#define __BSP_GPIO_H__
// typedef struct
// {
// /* data */
// void (*init_func)(void);
// void (*set_high_func)(void);
// void (*set_low_func)(void);
// }GPIO_CONFIG_STR;
typedef enum
{
LED1 = 0,
LED2,
// typedef struct
// {
// int8_t (*pf_init)(void);
// /* data */
// }gpio_t;
led_num
}led_type_enum;
// typedef struct
// {
// /* data */
// }gpio_int_t;
// typedef struct
// {
// int8_t (*pf_init)(void);
// int8_t (*pf_deinit)(void);
// int8_t (*pf_afio_deinit)(void);
// /* data */
// };
// typedef enum
// {
// e_GPIO_LED0 = 0,
// e_GPIO_LED1,
// e_GPIO_NUM
// }GPIO_USER_TYPE_ENUM;
// void bsp_gpio_init(void);
// GPIO_CONFIG_STR bsp_gpio_get_gpio_type_buf(GPIO_USER_TYPE_ENUM e_val);
/* led 组件 板级支持包 bsp */
void bsp_led_on(led_type_enum led_no);
void bsp_led_off(led_type_enum led_no);
void bsp_led_toggle(led_type_enum led_no);
void bsp_InitLed(void);
#endif

View File

@ -1,108 +1,153 @@
#include "bsp_gpio.h"
// #include "stm32f10x_gpio.h"
// #include "stm32f10x_rcc.h"
// #include "stm32f10x.h"
// #include "stdint.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x.h"
#include "stdint.h"
#include "public_diy.h"
/* led define */
/*
STM32F103C8 LED口线分配
LED1 : PC13 ()
LED2 :
LED3 :
LED4 :
*/
/* 按键口对应的RCC时钟 */
#define RCC_ALL_LED (RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOB)
#define GPIO_PORT_LED1 GPIOC
#define GPIO_PIN_LED1 GPIO_Pin_13
#define GPIO_PORT_LED2 GPIOB
#define GPIO_PIN_LED2 GPIO_Pin_9
/*************************************************************************************
* @brief led
* @param[in/out] led_no
*
* @warning ,
* @note
*************************************************************************************/
void bsp_led_on(uint8_t led_no)
{
if (led_no == (LED1))
{
// STM32F103C8T6开发板 1是亮0是灭
// GPIO_PORT_LED1->BRR = GPIO_PIN_LED1;
GPIO_PORT_LED1->BSRR |= GPIO_PIN_LED1;
}
if (led_no == (LED2))
{
// STM32F103C8T6开发板 1是亮0是灭
GPIO_PORT_LED2->BSRR |= GPIO_PIN_LED2;
}
// else if (_no == 2)
// {
// GPIO_PORT_LED3->BSRRH = GPIO_PIN_LED3;
// }
// else if (_no == 3)
// {
// GPIO_PORT_LED4->BSRRH = GPIO_PIN_LED4;
// }
}
/*************************************************************************************
* @brief Led
* @param[in/out] _no
*
* @warning ,
* @note
*************************************************************************************/
void bsp_led_off(uint8_t led_no)
{
if(led_no == LED1)
{
// STM32F103C8T6开发板 1是亮0是灭
GPIO_PORT_LED1->BRR = GPIO_PIN_LED1;
}
else if(led_no == LED2)
{
GPIO_PORT_LED2->BRR = GPIO_PIN_LED2;
}
else
{
;
}
}
/*************************************************************************************
* @brief led状态切换
* @param[in/out] led_no
*
* @warning ,
* @note
*************************************************************************************/
void bsp_led_toggle(uint8_t led_no)
{
if (led_no == LED1))
{
GPIO_PORT_LED1->ODR ^= GPIO_PIN_LED1;
}
else if (led_no == LED2)
{
GPIO_PORT_LED2->ODR ^= GPIO_PIN_LED2;
}
else
{
;
}
}
/*************************************************************************************
* @brief led当前的电平状态
* @return uint8_t
*
* @warning ,
* @note
*************************************************************************************/
uint8_t bsp_get_led_ttlState(void)
{
if(led_no == (LED1))
{
// STM32F103C8T6开发板 1是亮0是灭
// GPIO_PORT_LED1->BRR = GPIO_PIN_LED1;
GPIO_PORT_LED1->BSRR |= GPIO_PIN_LED1;
}
if(led_no == (LED2))
{
// STM32F103C8T6开发板 1是亮0是灭
GPIO_PORT_LED2->BSRR |= GPIO_PIN_LED2;
}
}
/*************************************************************************************
* @brief Led
*
* @warning ,
* @note
*************************************************************************************/
void bsp_InitLed(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
/* 打开GPIO时钟 */
RCC_APB2PeriphClockCmd(RCC_ALL_LED, ENABLE);
/*
LED指示灯GPIO为推挽输出模式
GPIO设置为输出时GPIO输出寄存器的值缺省是0LED点亮.
GPIO为输出前LED指示灯
*/
bsp_led_off(LED1);
bsp_led_off(LED2);
// typedef struct
// {
// GPIO_TypeDef* GPIOx;
// uint16_t GPIO_Pin;
// /* data */
// }GPIO_USER_TYPE_STR;
// static GPIO_USER_TYPE_STR bsp_gpio_user_type_buf[e_GPIO_NUM] =
// {
// [e_GPIO_LED0] = {GPIOA, GPIO_Pin_8},
// [e_GPIO_LED1] = {GPIOD, GPIO_Pin_2},
// }
// static GPIO_CONFIG_STR bsp_gpio_user_type_buf[e_GPIO_NUM];
// GPIO_CONFIG_STR bsp_gpio_get_gpio_type_buf(GPIO_USER_TYPE_ENUM e_val)
// {
// // 是否越界
// if(e_val >= e_GPIO_NUM)
// {
// while(1);
// }
// return bsp_gpio_user_type_buf[e_val];
// }
// static void bsp_gpio_led0_init(void)
// {
// GPIO_InitTypeDef GPIO_InitStructure;
// RCC_APB2PeriphClockCmd(IO_LED0_RCC_PERIPH, ENABLE); //使能 PA 端口时钟
// GPIO_InitStructure.GPIO_Pin = IO_LED0_PIN; //LED0-->PA.8 端口配置
// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO 口速度为 50MHz
// GPIO_Init(IO_LED0_PORT, &GPIO_InitStructure); //初始化 GPIOA.8
// // 初始化:高
// GPIO_SetBits(IO_LED0_PORT, IO_LED0_PIN); //PA.8 输出高
// }
// // LED0 高电平
// static void bsp_gpio_set_led0_high(void)
// {
// GPIO_SetBits(IO_LED0_PORT, IO_LED0_PIN);
// }
// // LED0 低电平
// static void bsp_gpio_set_led0_low(void)
// {
// GPIO_ResetBits(IO_LED0_PORT, IO_LED0_PIN);
// }
// // LED1 初始化
// static void bsp_gpio_led1_init(void)
// {
// GPIO_InitTypeDef GPIO_InitStructure;
// RCC_APB2PeriphClockCmd(IO_LED1_RCC_PERIPH, ENABLE); //使能 PD 端口时钟
// GPIO_InitStructure.GPIO_Pin = IO_LED1_PIN; //LED0-->PD.2 端口配置
// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO 口速度为 50MHz
// GPIO_Init(IO_LED1_PORT, &GPIO_InitStructure); //初始化 GPIOD.2
// // 初始化:高
// GPIO_SetBits(IO_LED1_PORT, IO_LED1_PIN); //PD.2 输出高
// }
// // LED1 高电平
// static void bsp_gpio_set_led1_high(void)
// {
// GPIO_SetBits(IO_LED1_PORT, IO_LED1_PIN);
// }
// // LED1 低电平
// static void bsp_gpio_set_led1_low(void)
// {
// GPIO_ResetBits(IO_LED1_PORT, IO_LED1_PIN);
// }
// /* bsp_gpio初始化函数 */
// void bsp_gpio_init(void)
// {
// uint8_t tmp_i;
// /* led0 */
// bsp_gpio_user_type_buf[e_GPIO_LED0].init_func = bsp_gpio_led0_init;
// bsp_gpio_user_type_buf[e_GPIO_LED0].set_high_func = bsp_gpio_set_led0_high;
// bsp_gpio_user_type_buf[e_GPIO_LED0].set_low_func = bsp_gpio_set_led0_low;
// /* led1 */
// bsp_gpio_user_type_buf[e_GPIO_LED1].init_func = bsp_gpio_led1_init;
// bsp_gpio_user_type_buf[e_GPIO_LED1].set_high_func = bsp_gpio_set_led1_high;
// bsp_gpio_user_type_buf[e_GPIO_LED1].set_low_func = bsp_gpio_set_led1_low;
// /* 初始化 */
// for(tmp_i = (GPIO_USER_TYPE_ENUM)0; tmp_i < e_GPIO_NUM; ++tmp_i)
// {
// bsp_gpio_user_type_buf[tmp_i].init_func();
// }
// }
/* LED 1*/
GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /* 设为 输出推挽模式 */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /* IO口最大速度 */
GPIO_Init(GPIO_PORT_LED1, &GPIO_InitStructure);
/* LED 2*/
GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /* 设为 输出推挽模式 */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /* IO口最大速度 */
GPIO_Init(GPIO_PORT_LED2, &GPIO_InitStructure);
}

View File

@ -0,0 +1,3 @@
#include "public_diy.h"

View File

@ -11,4 +11,8 @@
#endif
#endif

View File

View File

View File

@ -11,12 +11,13 @@
* Date: Version: Author: Description:
*************************************************************************************/
#include "mw_led.h"
#include "bsp_gpio.h"
#include <stdio.h>
/* led pin define */
// LED0 PC13
#define IO_LED0_PORT (GPIOC)
#define IO_LED0_RCC_PERIPH (RCC_APB2Periph_GPIOC)
#define IO_LED0_PIN (GPIO_Pin_13)
// #define IO_LED0_PORT (GPIOC)
// #define IO_LED0_RCC_PERIPH (RCC_APB2Periph_GPIOC)
// #define IO_LED0_PIN (GPIO_Pin_13)
/* led middleware instantiation */
mw_led_t led_drv_buf[led_num];
@ -40,36 +41,16 @@ mw_led_t mw_get_led_obj(led_type_enum e_led_type)
return led_drv_buf[e_led_type];
}
/* led 0 start */
void mw_led0_init(void)
/* led1 基础函数包*/
void mw_led1_on(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(IO_LED0_RCC_PERIPH, ENABLE); //使能 PA 端口时钟
GPIO_InitStructure.GPIO_Pin = IO_LED0_PIN; //LED0-->PA.8 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO 口速度为 50MHz
GPIO_Init(IO_LED0_PORT, &GPIO_InitStructure); //初始化 GPIOA.8
// 初始化:高
GPIO_SetBits(IO_LED0_PORT, IO_LED0_PIN); //PA.8 输出高
bsp_led_on(LED1);
}
/*************************************************************************************
* Led0 start
**************************************************************************************/
void mw_led0_on(void)
void mw_led1_off(void)
{
GPIO_SetBits(IO_LED0_PORT, IO_LED0_PIN);
bsp_led_off(LED1);
}
void mw_led0_off(void)
{
GPIO_ResetBits(IO_LED0_PORT, IO_LED0_PIN);
}
/*************************************************************************************
* Led0 end
**************************************************************************************/
/* led2 基础函数包 */
/*************************************************************************************
* @brief Led driver installation.

View File

@ -3,16 +3,16 @@
#include "stm32f10x.h"
typedef enum
{
Led0 = 0,
// typedef enum
// {
// Led0 = 0,
led_num
}led_type_enum;
// led_num
// }led_type_enum;
typedef struct
{
led_type_enum led_drv;
uint8_t led_drv;
void (*init)(void);
void (*on)(void);
void (*off)(void);

View File

@ -0,0 +1,771 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_optx.xsd">
<SchemaVersion>1.0</SchemaVersion>
<Header>### uVision Project, (C) Keil Software</Header>
<Extensions>
<cExt>*.c</cExt>
<aExt>*.s*; *.src; *.a*</aExt>
<oExt>*.obj; *.o</oExt>
<lExt>*.lib</lExt>
<tExt>*.txt; *.h; *.inc; *.md</tExt>
<pExt>*.plm</pExt>
<CppX>*.cpp; *.cc; *.cxx</CppX>
<nMigrate>0</nMigrate>
</Extensions>
<DaveTm>
<dwLowDateTime>0</dwLowDateTime>
<dwHighDateTime>0</dwHighDateTime>
</DaveTm>
<Target>
<TargetName>Target 1</TargetName>
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
<TargetOption>
<CLKADS>12000000</CLKADS>
<OPTTT>
<gFlags>1</gFlags>
<BeepAtEnd>1</BeepAtEnd>
<RunSim>0</RunSim>
<RunTarget>1</RunTarget>
<RunAbUc>0</RunAbUc>
</OPTTT>
<OPTHX>
<HexSelection>1</HexSelection>
<FlashByte>65535</FlashByte>
<HexRangeLowAddress>0</HexRangeLowAddress>
<HexRangeHighAddress>0</HexRangeHighAddress>
<HexOffset>0</HexOffset>
</OPTHX>
<OPTLEX>
<PageWidth>79</PageWidth>
<PageLength>66</PageLength>
<TabStop>8</TabStop>
<ListingPath>.\Listings\</ListingPath>
</OPTLEX>
<ListingPage>
<CreateCListing>1</CreateCListing>
<CreateAListing>1</CreateAListing>
<CreateLListing>1</CreateLListing>
<CreateIListing>0</CreateIListing>
<AsmCond>1</AsmCond>
<AsmSymb>1</AsmSymb>
<AsmXref>0</AsmXref>
<CCond>1</CCond>
<CCode>0</CCode>
<CListInc>0</CListInc>
<CSymb>0</CSymb>
<LinkerCodeListing>0</LinkerCodeListing>
</ListingPage>
<OPTXL>
<LMap>1</LMap>
<LComments>1</LComments>
<LGenerateSymbols>1</LGenerateSymbols>
<LLibSym>1</LLibSym>
<LLines>1</LLines>
<LLocSym>1</LLocSym>
<LPubSym>1</LPubSym>
<LXref>0</LXref>
<LExpSel>0</LExpSel>
</OPTXL>
<OPTFL>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<IsCurrentTarget>1</IsCurrentTarget>
</OPTFL>
<CpuCode>18</CpuCode>
<DebugOpt>
<uSim>0</uSim>
<uTrg>1</uTrg>
<sLdApp>1</sLdApp>
<sGomain>1</sGomain>
<sRbreak>1</sRbreak>
<sRwatch>1</sRwatch>
<sRmem>1</sRmem>
<sRfunc>1</sRfunc>
<sRbox>1</sRbox>
<tLdApp>1</tLdApp>
<tGomain>1</tGomain>
<tRbreak>1</tRbreak>
<tRwatch>1</tRwatch>
<tRmem>1</tRmem>
<tRfunc>0</tRfunc>
<tRbox>1</tRbox>
<tRtrace>1</tRtrace>
<sRSysVw>1</sRSysVw>
<tRSysVw>1</tRSysVw>
<sRunDeb>0</sRunDeb>
<sLrtime>0</sLrtime>
<bEvRecOn>1</bEvRecOn>
<bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf>
<nTsel>6</nTsel>
<sDll></sDll>
<sDllPa></sDllPa>
<sDlgDll></sDlgDll>
<sDlgPa></sDlgPa>
<sIfile></sIfile>
<tDll></tDll>
<tDllPa></tDllPa>
<tDlgDll></tDlgDll>
<tDlgPa></tDlgPa>
<tIfile></tIfile>
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
</DebugOpt>
<TargetDriverDllRegistry>
<SetRegEntry>
<Number>0</Number>
<Key>ARMRTXEVENTFLAGS</Key>
<Name>-L70 -Z18 -C0 -M0 -T1</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>DLGTARM</Key>
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>ARMDBGFLAGS</Key>
<Name></Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>DLGUARM</Key>
<Name>(105=-1,-1,-1,-1,0)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>ST-LINKIII-KEIL_SWO</Key>
<Name>-U48FF70067267504822130167 -O16623 -SF1800 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(1BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8000 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL010000 -FP0($$Device:STM32F103C8$Flash\STM32F10x_128.FLM)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>UL2CM3</Key>
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103C8$Flash\STM32F10x_128.FLM))</Name>
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint/>
<WatchWindow1>
<Ww>
<count>0</count>
<WinNumber>1</WinNumber>
<ItemText>xqqDebug,0x0A</ItemText>
</Ww>
</WatchWindow1>
<Tracepoint>
<THDelay>0</THDelay>
</Tracepoint>
<DebugFlag>
<trace>0</trace>
<periodic>1</periodic>
<aLwin>1</aLwin>
<aCover>0</aCover>
<aSer1>0</aSer1>
<aSer2>0</aSer2>
<aPa>0</aPa>
<viewmode>1</viewmode>
<vrSel>0</vrSel>
<aSym>0</aSym>
<aTbox>0</aTbox>
<AscS1>0</AscS1>
<AscS2>0</AscS2>
<AscS3>0</AscS3>
<aSer3>0</aSer3>
<eProf>0</eProf>
<aLa>0</aLa>
<aPa1>0</aPa1>
<AscS4>0</AscS4>
<aSer4>0</aSer4>
<StkLoc>0</StkLoc>
<TrcWin>0</TrcWin>
<newCpu>0</newCpu>
<uProt>0</uProt>
</DebugFlag>
<LintExecutable></LintExecutable>
<LintConfigFile></LintConfigFile>
<bLintAuto>0</bLintAuto>
<bAutoGenD>0</bAutoGenD>
<LntExFlags>0</LntExFlags>
<pMisraName></pMisraName>
<pszMrule></pszMrule>
<pSingCmds></pSingCmds>
<pMultCmds></pMultCmds>
<pMisraNamep></pMisraNamep>
<pszMrulep></pszMrulep>
<pSingCmdsp></pSingCmdsp>
<pMultCmdsp></pMultCmdsp>
<DebugDescription>
<Enable>1</Enable>
<EnableFlashSeq>0</EnableFlashSeq>
<EnableLog>0</EnableLog>
<Protocol>2</Protocol>
<DbgClock>1800000</DbgClock>
</DebugDescription>
</TargetOption>
</Target>
<Group>
<GroupName>APP</GroupName>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>1</GroupNumber>
<FileNumber>1</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\app\src\main.c</PathWithFileName>
<FilenameWithoutPath>main.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>1</GroupNumber>
<FileNumber>2</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\app\src\app_led.c</PathWithFileName>
<FilenameWithoutPath>app_led.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
<GroupName>MIDDLEWARE</GroupName>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>3</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\middleware\internal\src\mw_led.c</PathWithFileName>
<FilenameWithoutPath>mw_led.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>4</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\middleware\internal\src\mw_printf.c</PathWithFileName>
<FilenameWithoutPath>mw_printf.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>5</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\middleware\internal\src\mw_soft_timer.c</PathWithFileName>
<FilenameWithoutPath>mw_soft_timer.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
<GroupName>BSP</GroupName>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>6</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\bsp\src\bsp_timer.c</PathWithFileName>
<FilenameWithoutPath>bsp_timer.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>7</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\bsp\src\bsp_usart.c</PathWithFileName>
<FilenameWithoutPath>bsp_usart.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>8</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\bsp\bsp.c</PathWithFileName>
<FilenameWithoutPath>bsp.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>9</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\bsp\src\bsp_led.c</PathWithFileName>
<FilenameWithoutPath>bsp_led.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
<GroupName>LIBRARY/STM32_STD_CORE</GroupName>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>10</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\CoreSupport\core_cm3.c</PathWithFileName>
<FilenameWithoutPath>core_cm3.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>11</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h</PathWithFileName>
<FilenameWithoutPath>core_cm3.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>12</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h</PathWithFileName>
<FilenameWithoutPath>stm32f10x.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>13</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c</PathWithFileName>
<FilenameWithoutPath>system_stm32f10x.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>14</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h</PathWithFileName>
<FilenameWithoutPath>system_stm32f10x.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>15</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\stm32f10x_conf.h</PathWithFileName>
<FilenameWithoutPath>stm32f10x_conf.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>16</FileNumber>
<FileType>2</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_md.s</PathWithFileName>
<FilenameWithoutPath>startup_stm32f10x_md.s</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
<GroupName>LIBRARY/STM32_STD_PERIPH_DRIVER</GroupName>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>17</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c</PathWithFileName>
<FilenameWithoutPath>misc.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>18</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c</PathWithFileName>
<FilenameWithoutPath>stm32f10x_adc.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>19</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c</PathWithFileName>
<FilenameWithoutPath>stm32f10x_bkp.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>20</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c</PathWithFileName>
<FilenameWithoutPath>stm32f10x_can.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>21</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c</PathWithFileName>
<FilenameWithoutPath>stm32f10x_cec.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>22</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c</PathWithFileName>
<FilenameWithoutPath>stm32f10x_crc.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>23</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c</PathWithFileName>
<FilenameWithoutPath>stm32f10x_dac.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>24</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c</PathWithFileName>
<FilenameWithoutPath>stm32f10x_dbgmcu.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>25</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c</PathWithFileName>
<FilenameWithoutPath>stm32f10x_dma.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>26</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c</PathWithFileName>
<FilenameWithoutPath>stm32f10x_exti.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>27</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c</PathWithFileName>
<FilenameWithoutPath>stm32f10x_flash.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>28</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c</PathWithFileName>
<FilenameWithoutPath>stm32f10x_fsmc.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>29</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c</PathWithFileName>
<FilenameWithoutPath>stm32f10x_gpio.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>30</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c</PathWithFileName>
<FilenameWithoutPath>stm32f10x_i2c.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>31</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c</PathWithFileName>
<FilenameWithoutPath>stm32f10x_iwdg.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>32</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c</PathWithFileName>
<FilenameWithoutPath>stm32f10x_pwr.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>33</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c</PathWithFileName>
<FilenameWithoutPath>stm32f10x_rcc.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>34</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c</PathWithFileName>
<FilenameWithoutPath>stm32f10x_rtc.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>35</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c</PathWithFileName>
<FilenameWithoutPath>stm32f10x_sdio.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>36</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c</PathWithFileName>
<FilenameWithoutPath>stm32f10x_spi.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>37</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c</PathWithFileName>
<FilenameWithoutPath>stm32f10x_tim.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>38</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c</PathWithFileName>
<FilenameWithoutPath>stm32f10x_usart.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>39</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c</PathWithFileName>
<FilenameWithoutPath>stm32f10x_wwdg.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
<GroupName>ISR</GroupName>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>40</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\isr\interrupt_handler.c</PathWithFileName>
<FilenameWithoutPath>interrupt_handler.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
<GroupName>MW/BLUETOOTH</GroupName>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>41</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\middleware\BlueTooth\mw_bluetooth.c</PathWithFileName>
<FilenameWithoutPath>mw_bluetooth.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>42</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Code\middleware\BlueTooth\HC-06\hc06.c</PathWithFileName>
<FilenameWithoutPath>hc06.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
</ProjectOpt>