UART Working (test with rspi). Interruption for Receiving. Pinout for the different UARTS

This commit is contained in:
Yohan Boujon 2023-04-02 22:53:49 +02:00
parent 398575d7c5
commit b2f1785052
7 changed files with 216 additions and 128 deletions

View file

@ -2,49 +2,50 @@
#include "gpio.h" #include "gpio.h"
//faire GPIO //faire GPIO
char data1 = 0x00; char data1 = 0;
char data2 = 0x00; char data2 = 0;
char data3 = 0x00; char data3 = 0;
void MyUART_Init(MyUART_Struct_Typedef * UARTStructPtr){ void MyUART_Init(MyUART_Struct_Typedef * UARTStructPtr){
MyUART_setClockBit(UARTStructPtr->UART); MyUART_setClockBit(UARTStructPtr); //Clock enable and setting the baud.
UARTStructPtr->UART->BRR = 72000000/(UARTStructPtr->BaudRate); UARTStructPtr->UART->CR1 = 0x00; // Clear ALL
UARTStructPtr->UART->CR1 |= ((UARTStructPtr->Wlengh)<<12); UARTStructPtr->UART->CR1 |= USART_CR1_UE;
UARTStructPtr->UART->CR1 |= (0x1<<10); UARTStructPtr->UART->CR1 |= ((UARTStructPtr->length)<<12); //Setting the Length of the data transmitted
if(UARTStructPtr->Wparity == parity_none) UARTStructPtr->UART->CR1 &= ~(0x3<<9); //reset CR1 9-10 bits, Parity Selection
UARTStructPtr->UART->CR1 &= ~(0x1<<10); if(UARTStructPtr->parity != parityNone) //if parity is enabled
if(UARTStructPtr->Wparity == parity_odd) {
UARTStructPtr->UART->CR1 |= (0x1<<9); UARTStructPtr->UART->CR1 |= (UARTStructPtr->parity<<9); //depending on the parity changing the 9th bit, and set 10th bit to 1
if(UARTStructPtr->Wparity == parity_even)
UARTStructPtr->UART->CR1 &= ~(0x1<<9);
if(UARTStructPtr->Wstop == stop1b)
UARTStructPtr->UART->CR2 &= ~(0x3<<12);
if(UARTStructPtr->Wstop == stop2b){
UARTStructPtr->UART->CR2 &= ~(0x3<<12);
UARTStructPtr->UART->CR2 |= (0x1<<13);
} }
UARTStructPtr->UART->CR1 |= (USART_CR1_TE | USART_CR1_RE | USART_CR1_UE | USART_CR1_RXNEIE);
NVIC_EnableIRQ(USART1_IRQn); UARTStructPtr->UART->CR2 &= ~(0x3<<12); //reset CR2 13-12 bits, Stop bits
if(UARTStructPtr->stop != stopBit1) //if stop bits > 1
{
UARTStructPtr->UART->CR2 |= (UARTStructPtr->stop<<12); //depending on the stop changing the 12th and 13th bit.
}
//TxD Enable, RxD Enable, USART Global Enable
UARTStructPtr->UART->CR1 |= (USART_CR1_TE | USART_CR1_RE);
MyUART_ActiveIT(UARTStructPtr->UART,1);
} }
int MyUART_setClockBit(USART_TypeDef * UART) int MyUART_setClockBit(MyUART_Struct_Typedef * UARTStructPtr)
{ {
if (UART == USART1) if (UARTStructPtr->UART == USART1)
{ {
RCC->APB2ENR |= RCC_APB2ENR_USART1EN; //72MHz RCC->APB2ENR |= RCC_APB2ENR_USART1EN;
USART1->BRR = 72000000/(UARTStructPtr->BaudRate); //Calculating the baudrate depending on the clock frequency
return 0; return 0;
} }
else if (UART == USART2) else if (UARTStructPtr->UART == USART2)
{ {
RCC->APB1ENR |= RCC_APB1ENR_USART2EN; //36MHz RCC->APB1ENR |= RCC_APB1ENR_USART2EN;
USART2->BRR = 36000000/(UARTStructPtr->BaudRate);
return 0; return 0;
} }
else if (UART == USART3) else if (UARTStructPtr->UART == USART3)
{ {
RCC->APB1ENR |= RCC_APB1ENR_USART3EN; //36MHz //Maybe return the clock base mhz ? RCC->APB1ENR |= RCC_APB1ENR_USART3EN;
USART3->BRR = 36000000/(UARTStructPtr->BaudRate);
return 0; return 0;
} }
else { else {
@ -52,36 +53,79 @@ int MyUART_setClockBit(USART_TypeDef * UART)
} }
} }
void MyUART_ActiveIT(USART_TypeDef * UART, uint8_t Prio)
{
uint32_t IRQNumber = MyUART_GetInterruptNum(UART);
UART->CR1 |= (USART_CR1_RXNEIE); //Interruption active pour la reception UNIQUEMENT
NVIC->IP[IRQNumber] |= (Prio << 0x4); //Prio de l'interruption (p.197 manuel reference RM0008 pour ADC1_IRQn)
NVIC->ISER[1] |= (0x1<<(IRQNumber-32)); //Active l'interruption au niveau NVIC (p.119 manuel programming pour ISER[0])
}
void MyUART_Send(MyUART_Struct_Typedef *UART, uint8_t data)
{
UART->UART->DR = data;
//du DR au Registre de Transmission, on attend que le bit de stop soit envoyé
while (!(UART->UART->SR & USART_SR_TC));
}
uint8_t MyUART_Receive(MyUART_Struct_Typedef *UART)
{
while (!(UART->UART->SR & USART_SR_RXNE)); // Si RXNE est mis à 1, alors on vient de recevoir une donnée !
uint8_t data = UART->UART->DR; // Read the data.
UART->UART->SR &= ~USART_SR_RXNE; //flag to 0
return data;
}
uint8_t MyUART_GetInterruptNum(USART_TypeDef * UART)
{
if(UART == USART1)
{
return USART1_IRQn;
}
else if(UART == USART2)
{
return USART2_IRQn;
}
else if(UART == USART3)
{
return USART3_IRQn;
}
else{
return 0;
}
}
void USART1_IRQHandler(void) void USART1_IRQHandler(void)
{ {
// Check if receive data register not empty if((USART1->SR & USART_SR_RXNE) == USART_SR_RXNE) //verify the flag
if(USART1->SR & USART_SR_RXNE) {
{ data1 = USART1->DR; // read received data
data1 = USART1->DR; // read received data USART1->SR &= ~USART_SR_RXNE; //flag to 0
// do something with received data }
}
} }
void USART2_IRQHandler(void) void USART2_IRQHandler(void)
{ {
// Check if receive data register not empty if((USART2->SR & USART_SR_RXNE) == USART_SR_RXNE) //verify the flag
if(USART2->SR & USART_SR_RXNE) {
{ data2 = USART2->DR; // read received data
data2 = USART2->DR; // read received data USART2->SR &= ~USART_SR_RXNE; //flag to 0
// do something with received data }
}
} }
void USART3_IRQHandler(void) void USART3_IRQHandler(void)
{ {
// Check if receive data register not empty // Check if receive data register not empty
if(USART3->SR & USART_SR_RXNE) if((USART3->SR & USART_SR_RXNE) == USART_SR_RXNE) //verify the flag
{ {
data3 = USART3->DR; // read received data data3 = USART3->DR; // read received data
// do something with received data // do something with received data
USART2->SR &= ~USART_SR_RXNE; //flag to 0
} }
} }
char MyUART_Read(MyUART_Struct_Typedef * UARTStructPtr) char MyUART_Read(MyUART_Struct_Typedef * UARTStructPtr)
{ {
if(UARTStructPtr->UART == USART1) if(UARTStructPtr->UART == USART1)

View file

@ -2,28 +2,37 @@
#define UART_H #define UART_H
#include "stm32f10x.h" #include "stm32f10x.h"
typedef struct { typedef enum {
USART_TypeDef * UART; lengthBit8,
unsigned int BaudRate; lengthBit9
unsigned char Wlengh; } MyUART_Enum_Length;
unsigned char Wparity;
unsigned char Wstop;
}MyUART_Struct_Typedef;
typedef enum { typedef enum {
//DIV_Fraction -> parityNone,
//1D4C parityEven = 0b10,
}MyUART_BRR parityOdd = 0b11
} MyUART_Enum_Parity;
#define parity_none 0x0 typedef enum {
#define parity_even 0x1 stopBit1,
#define parity_odd 0x2 stopBit0d5,
#define Wlengh8 0x0 stopBit2,
#define Wlengh9 0X1 stopBit1d5
#define stop1b 0x0 } MyUART_Enum_StopBits;
#define stop2b 0x2
typedef struct {
USART_TypeDef * UART;
uint32_t BaudRate;
MyUART_Enum_Length length;
MyUART_Enum_Parity parity;
MyUART_Enum_StopBits stop;
}MyUART_Struct_Typedef;
void MyUART_Init(MyUART_Struct_Typedef * UARTStructPtr); void MyUART_Init(MyUART_Struct_Typedef * UARTStructPtr);
int MyUART_setClockBit(USART_TypeDef * UART); int MyUART_setClockBit(MyUART_Struct_Typedef * UARTStructPtr);
void MyUART_Send(MyUART_Struct_Typedef *UART, uint8_t data);
uint8_t MyUART_Receive(MyUART_Struct_Typedef *UART);
void MyUART_ActiveIT(USART_TypeDef * UART, uint8_t Prio);
uint8_t MyUART_GetInterruptNum(USART_TypeDef * UART);
char MyUART_Read(MyUART_Struct_Typedef * UARTStructPtr); char MyUART_Read(MyUART_Struct_Typedef * UARTStructPtr);
#endif #endif

View file

@ -132,7 +132,7 @@ Reset_Handler PROC
EXPORT Reset_Handler [WEAK] EXPORT Reset_Handler [WEAK]
IMPORT __main IMPORT __main
IMPORT SystemInit IMPORT SystemInit
LDR R0, =SystemInit a LDR R0, =SystemInit
BLX R0 BLX R0
LDR R0, =__main LDR R0, =__main
BX R0 BX R0

View file

@ -3,7 +3,7 @@
* Auto generated Run-Time-Environment Configuration File * Auto generated Run-Time-Environment Configuration File
* *** Do not modify ! *** * *** Do not modify ! ***
* *
* Project: 'gpiodriver' * Project: 'voilier'
* Target: 'Réel' * Target: 'Réel'
*/ */

View file

@ -2,8 +2,36 @@
#include "../../driver/MyI2C.h" #include "../../driver/MyI2C.h"
#include "../../driver/MySPI.h" #include "../../driver/MySPI.h"
#include "../../implementation/remote.h" #include "../../implementation/remote.h"
#include "../../driver/gpio.h"
int main (void) int main (void)
{ {
while(1){}; //rxd input pull up, txd output none
MyGPIO_Struct_TypeDef led = {GPIOA,5,Out_PullUp}; //led
MyGPIO_Struct_TypeDef rxd1 = {GPIOA,10,In_PullUp};
MyGPIO_Struct_TypeDef txd1 = {GPIOA,9,AltOut_Ppull};
MyGPIO_Struct_TypeDef rxd2 = {GPIOA,3,In_Floating};
MyGPIO_Struct_TypeDef txd2 = {GPIOA,2,AltOut_Ppull};
MyGPIO_Struct_TypeDef rxd3 = {GPIOB,11,In_PullUp};
MyGPIO_Struct_TypeDef txd3 = {GPIOB,10,AltOut_Ppull};
MyUART_Struct_Typedef uartCool = {USART3,9600,lengthBit8,parityNone,stopBit1};
MyGPIO_Init(&led);
MyGPIO_Init(&rxd1);
MyGPIO_Init(&txd1);
MyGPIO_Init(&rxd2);
MyGPIO_Init(&txd2);
MyGPIO_Init(&rxd3);
MyGPIO_Init(&txd3);
MyUART_Init(&uartCool);
while(1){
if(MyUART_Read(&uartCool) == 0x61)
{
MyGPIO_Set(GPIOA,5);
MyUART_Send(&uartCool,'k');
MyUART_Send(&uartCool,'o');
MyUART_Send(&uartCool,'\n');
}
};
} }

View file

@ -75,7 +75,7 @@
<OPTFL> <OPTFL>
<tvExp>1</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<IsCurrentTarget>1</IsCurrentTarget> <IsCurrentTarget>0</IsCurrentTarget>
</OPTFL> </OPTFL>
<CpuCode>18</CpuCode> <CpuCode>18</CpuCode>
<DebugOpt> <DebugOpt>
@ -125,7 +125,7 @@
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>DLGDARM</Key> <Key>DLGDARM</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)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=1468,53,1889,480,1)(121=1469,437,1890,864,1)(122=875,109,1296,536,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=1285,87,1879,838,1)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(234=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)</Name> <Name>(1010=1460,461,1836,1018,1)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=1009,499,1430,926,1)(121=1469,437,1890,864,0)(122=875,109,1296,536,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=105,137,504,482,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=879,71,1473,822,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=1014,43,1462,457,1)(161=568,150,1016,564,1)(162=1351,117,1799,531,1)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(234=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)</Name>
</SetRegEntry> </SetRegEntry>
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
@ -142,9 +142,9 @@
<Bp> <Bp>
<Number>0</Number> <Number>0</Number>
<Type>0</Type> <Type>0</Type>
<LineNumber>15</LineNumber> <LineNumber>29</LineNumber>
<EnabledFlag>1</EnabledFlag> <EnabledFlag>1</EnabledFlag>
<Address>134218740</Address> <Address>134219444</Address>
<ByteObject>0</ByteObject> <ByteObject>0</ByteObject>
<HtxType>0</HtxType> <HtxType>0</HtxType>
<ManyObjects>0</ManyObjects> <ManyObjects>0</ManyObjects>
@ -153,71 +153,39 @@
<BreakIfRCount>1</BreakIfRCount> <BreakIfRCount>1</BreakIfRCount>
<Filename>.\Source\Principale.c</Filename> <Filename>.\Source\Principale.c</Filename>
<ExecCommand></ExecCommand> <ExecCommand></ExecCommand>
<Expression>\\cool_Simule\Source/Principale.c\15</Expression> <Expression>\\cool_Simule\Source/Principale.c\29</Expression>
</Bp> </Bp>
<Bp> <Bp>
<Number>1</Number> <Number>1</Number>
<Type>0</Type> <Type>0</Type>
<LineNumber>19</LineNumber> <LineNumber>28</LineNumber>
<EnabledFlag>1</EnabledFlag> <EnabledFlag>1</EnabledFlag>
<Address>0</Address> <Address>134219442</Address>
<ByteObject>0</ByteObject> <ByteObject>0</ByteObject>
<HtxType>0</HtxType> <HtxType>0</HtxType>
<ManyObjects>0</ManyObjects> <ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject> <SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess> <BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount> <BreakIfRCount>1</BreakIfRCount>
<Filename>.\Source\Principale.c</Filename> <Filename>.\Source\Principale.c</Filename>
<ExecCommand></ExecCommand> <ExecCommand></ExecCommand>
<Expression></Expression> <Expression>\\cool_Simule\Source/Principale.c\28</Expression>
</Bp> </Bp>
<Bp> <Bp>
<Number>2</Number> <Number>2</Number>
<Type>0</Type> <Type>0</Type>
<LineNumber>7</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>.\Source\Principale.c</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp>
<Bp>
<Number>3</Number>
<Type>0</Type>
<LineNumber>8</LineNumber> <LineNumber>8</LineNumber>
<EnabledFlag>1</EnabledFlag> <EnabledFlag>1</EnabledFlag>
<Address>0</Address> <Address>134219308</Address>
<ByteObject>0</ByteObject> <ByteObject>0</ByteObject>
<HtxType>0</HtxType> <HtxType>0</HtxType>
<ManyObjects>0</ManyObjects> <ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject> <SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess> <BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount> <BreakIfRCount>1</BreakIfRCount>
<Filename>.\Source\Principale.c</Filename> <Filename>.\Source\Principale.c</Filename>
<ExecCommand></ExecCommand> <ExecCommand></ExecCommand>
<Expression></Expression> <Expression>\\cool_Simule\Source/Principale.c\8</Expression>
</Bp>
<Bp>
<Number>4</Number>
<Type>0</Type>
<LineNumber>9</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>.\Source\Principale.c</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp> </Bp>
</Breakpoint> </Breakpoint>
<WatchWindow1> <WatchWindow1>
@ -274,16 +242,6 @@
<pszMrulep></pszMrulep> <pszMrulep></pszMrulep>
<pSingCmdsp></pSingCmdsp> <pSingCmdsp></pSingCmdsp>
<pMultCmdsp></pMultCmdsp> <pMultCmdsp></pMultCmdsp>
<SystemViewers>
<Entry>
<Name>System Viewer\GPIOA</Name>
<WinId>35905</WinId>
</Entry>
<Entry>
<Name>System Viewer\GPIOB</Name>
<WinId>35904</WinId>
</Entry>
</SystemViewers>
<DebugDescription> <DebugDescription>
<Enable>1</Enable> <Enable>1</Enable>
<EnableFlashSeq>1</EnableFlashSeq> <EnableFlashSeq>1</EnableFlashSeq>
@ -348,7 +306,7 @@
<OPTFL> <OPTFL>
<tvExp>1</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<IsCurrentTarget>0</IsCurrentTarget> <IsCurrentTarget>1</IsCurrentTarget>
</OPTFL> </OPTFL>
<CpuCode>18</CpuCode> <CpuCode>18</CpuCode>
<DebugOpt> <DebugOpt>
@ -403,7 +361,7 @@
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>ST-LINKIII-KEIL_SWO</Key> <Key>ST-LINKIII-KEIL_SWO</Key>
<Name>-U066FFF504955857567155843 -O206 -SF10000 -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 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM)</Name> <Name>-U066FFF504955857567155843 -O206 -SF10000 -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 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM) -WA0 -WE0 -WVCE4 -WS2710 -WM0 -WP2</Name>
</SetRegEntry> </SetRegEntry>
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
@ -430,7 +388,39 @@
<Bp> <Bp>
<Number>0</Number> <Number>0</Number>
<Type>0</Type> <Type>0</Type>
<LineNumber>6</LineNumber> <LineNumber>31</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134219614</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>.\Source\Principale.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\cool_reel\Source/Principale.c\31</Expression>
</Bp>
<Bp>
<Number>1</Number>
<Type>0</Type>
<LineNumber>28</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134219606</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>.\Source\Principale.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\cool_reel\Source/Principale.c\28</Expression>
</Bp>
<Bp>
<Number>2</Number>
<Type>0</Type>
<LineNumber>30</LineNumber>
<EnabledFlag>1</EnabledFlag> <EnabledFlag>1</EnabledFlag>
<Address>0</Address> <Address>0</Address>
<ByteObject>0</ByteObject> <ByteObject>0</ByteObject>
@ -498,6 +488,20 @@
<pszMrulep></pszMrulep> <pszMrulep></pszMrulep>
<pSingCmdsp></pSingCmdsp> <pSingCmdsp></pSingCmdsp>
<pMultCmdsp></pMultCmdsp> <pMultCmdsp></pMultCmdsp>
<SystemViewers>
<Entry>
<Name>System Viewer\USART1</Name>
<WinId>35905</WinId>
</Entry>
<Entry>
<Name>System Viewer\USART2</Name>
<WinId>35904</WinId>
</Entry>
<Entry>
<Name>System Viewer\USART3</Name>
<WinId>35903</WinId>
</Entry>
</SystemViewers>
<DebugDescription> <DebugDescription>
<Enable>1</Enable> <Enable>1</Enable>
<EnableFlashSeq>0</EnableFlashSeq> <EnableFlashSeq>0</EnableFlashSeq>
@ -562,7 +566,7 @@
<GroupNumber>2</GroupNumber> <GroupNumber>2</GroupNumber>
<FileNumber>4</FileNumber> <FileNumber>4</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\driver\adc.c</PathWithFileName> <PathWithFileName>..\driver\adc.c</PathWithFileName>
@ -574,7 +578,7 @@
<GroupNumber>2</GroupNumber> <GroupNumber>2</GroupNumber>
<FileNumber>5</FileNumber> <FileNumber>5</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\driver\gpio.c</PathWithFileName> <PathWithFileName>..\driver\gpio.c</PathWithFileName>

View file

@ -10,13 +10,14 @@
<TargetName>Simulé</TargetName> <TargetName>Simulé</TargetName>
<ToolsetNumber>0x4</ToolsetNumber> <ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName> <ToolsetName>ARM-ADS</ToolsetName>
<pCCUsed>5060960::V5.06 update 7 (build 960)::.\ARMCC</pCCUsed> <pArmCC>5060960::V5.06 update 7 (build 960)::.\ARM_Compiler_5.06u7</pArmCC>
<pCCUsed>5060960::V5.06 update 7 (build 960)::.\ARM_Compiler_5.06u7</pCCUsed>
<uAC6>0</uAC6> <uAC6>0</uAC6>
<TargetOption> <TargetOption>
<TargetCommonOption> <TargetCommonOption>
<Device>STM32F103RB</Device> <Device>STM32F103RB</Device>
<Vendor>STMicroelectronics</Vendor> <Vendor>STMicroelectronics</Vendor>
<PackID>Keil.STM32F1xx_DFP.2.3.0</PackID> <PackID>Keil.STM32F1xx_DFP.2.4.0</PackID>
<PackURL>http://www.keil.com/pack/</PackURL> <PackURL>http://www.keil.com/pack/</PackURL>
<Cpu>IRAM(0x20000000,0x00005000) IROM(0x08000000,0x00020000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE</Cpu> <Cpu>IRAM(0x20000000,0x00005000) IROM(0x08000000,0x00020000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE</Cpu>
<FlashUtilSpec></FlashUtilSpec> <FlashUtilSpec></FlashUtilSpec>
@ -186,6 +187,7 @@
<RvdsVP>0</RvdsVP> <RvdsVP>0</RvdsVP>
<RvdsMve>0</RvdsMve> <RvdsMve>0</RvdsMve>
<RvdsCdeCp>0</RvdsCdeCp> <RvdsCdeCp>0</RvdsCdeCp>
<nBranchProt>0</nBranchProt>
<hadIRAM2>0</hadIRAM2> <hadIRAM2>0</hadIRAM2>
<hadIROM2>0</hadIROM2> <hadIROM2>0</hadIROM2>
<StupSel>8</StupSel> <StupSel>8</StupSel>
@ -437,13 +439,13 @@
<TargetName>Réel</TargetName> <TargetName>Réel</TargetName>
<ToolsetNumber>0x4</ToolsetNumber> <ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName> <ToolsetName>ARM-ADS</ToolsetName>
<pCCUsed>5060960::V5.06 update 7 (build 960)::.\ARMCC</pCCUsed> <pCCUsed>5060960::V5.06 update 7 (build 960)::.\ARM_Compiler_5.06u7</pCCUsed>
<uAC6>0</uAC6> <uAC6>0</uAC6>
<TargetOption> <TargetOption>
<TargetCommonOption> <TargetCommonOption>
<Device>STM32F103RB</Device> <Device>STM32F103RB</Device>
<Vendor>STMicroelectronics</Vendor> <Vendor>STMicroelectronics</Vendor>
<PackID>Keil.STM32F1xx_DFP.2.3.0</PackID> <PackID>Keil.STM32F1xx_DFP.2.4.0</PackID>
<PackURL>http://www.keil.com/pack/</PackURL> <PackURL>http://www.keil.com/pack/</PackURL>
<Cpu>IRAM(0x20000000,0x00005000) IROM(0x08000000,0x00020000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE</Cpu> <Cpu>IRAM(0x20000000,0x00005000) IROM(0x08000000,0x00020000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE</Cpu>
<FlashUtilSpec></FlashUtilSpec> <FlashUtilSpec></FlashUtilSpec>
@ -613,6 +615,7 @@
<RvdsVP>0</RvdsVP> <RvdsVP>0</RvdsVP>
<RvdsMve>0</RvdsMve> <RvdsMve>0</RvdsMve>
<RvdsCdeCp>0</RvdsCdeCp> <RvdsCdeCp>0</RvdsCdeCp>
<nBranchProt>0</nBranchProt>
<hadIRAM2>0</hadIRAM2> <hadIRAM2>0</hadIRAM2>
<hadIROM2>0</hadIROM2> <hadIROM2>0</hadIROM2>
<StupSel>8</StupSel> <StupSel>8</StupSel>
@ -884,7 +887,7 @@
<file attr="config" category="header" name="RTE_Driver\Config\RTE_Device.h" version="1.1.2"> <file attr="config" category="header" name="RTE_Driver\Config\RTE_Device.h" version="1.1.2">
<instance index="0">RTE\Device\STM32F103RB\RTE_Device.h</instance> <instance index="0">RTE\Device\STM32F103RB\RTE_Device.h</instance>
<component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.0" condition="STM32F1xx CMSIS"/> <component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.0" condition="STM32F1xx CMSIS"/>
<package name="STM32F1xx_DFP" schemaVersion="1.4.0" url="http://www.keil.com/pack/" vendor="Keil" version="2.3.0"/> <package name="STM32F1xx_DFP" schemaVersion="1.7.2" url="http://www.keil.com/pack/" vendor="Keil" version="2.4.0"/>
<targetInfos> <targetInfos>
<targetInfo name="Réel"/> <targetInfo name="Réel"/>
<targetInfo name="Simulé"/> <targetInfo name="Simulé"/>
@ -893,7 +896,7 @@
<file attr="config" category="source" condition="STM32F1xx MD ARMCC" name="Device\Source\ARM\startup_stm32f10x_md.s" version="1.0.1"> <file attr="config" category="source" condition="STM32F1xx MD ARMCC" name="Device\Source\ARM\startup_stm32f10x_md.s" version="1.0.1">
<instance index="0">RTE\Device\STM32F103RB\startup_stm32f10x_md.s</instance> <instance index="0">RTE\Device\STM32F103RB\startup_stm32f10x_md.s</instance>
<component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.0" condition="STM32F1xx CMSIS"/> <component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.0" condition="STM32F1xx CMSIS"/>
<package name="STM32F1xx_DFP" schemaVersion="1.4.0" url="http://www.keil.com/pack/" vendor="Keil" version="2.3.0"/> <package name="STM32F1xx_DFP" schemaVersion="1.7.2" url="http://www.keil.com/pack/" vendor="Keil" version="2.4.0"/>
<targetInfos> <targetInfos>
<targetInfo name="Réel"/> <targetInfo name="Réel"/>
<targetInfo name="Simulé"/> <targetInfo name="Simulé"/>
@ -902,7 +905,7 @@
<file attr="config" category="source" name="Device\Source\system_stm32f10x.c" version="1.0.1"> <file attr="config" category="source" name="Device\Source\system_stm32f10x.c" version="1.0.1">
<instance index="0">RTE\Device\STM32F103RB\system_stm32f10x.c</instance> <instance index="0">RTE\Device\STM32F103RB\system_stm32f10x.c</instance>
<component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.0" condition="STM32F1xx CMSIS"/> <component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.0" condition="STM32F1xx CMSIS"/>
<package name="STM32F1xx_DFP" schemaVersion="1.4.0" url="http://www.keil.com/pack/" vendor="Keil" version="2.3.0"/> <package name="STM32F1xx_DFP" schemaVersion="1.7.2" url="http://www.keil.com/pack/" vendor="Keil" version="2.4.0"/>
<targetInfos> <targetInfos>
<targetInfo name="Réel"/> <targetInfo name="Réel"/>
<targetInfo name="Simulé"/> <targetInfo name="Simulé"/>