本文整理汇总了C++中RCC_Configuration函数的典型用法代码示例。如果您正苦于以下问题:C++ RCC_Configuration函数的具体用法?C++ RCC_Configuration怎么用?C++ RCC_Configuration使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了RCC_Configuration函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: main
/**
* @brief Main program
* @param None
* @retval None
*/
int main(void)
{
/* System Clocks Configuration */
RCC_Configuration();
/* Configure the GPIO ports */
GPIO_Configuration();
#ifndef USE_STM3210C_EVAL
/* Initialize JoyStick Button mounted on STM3210X-EVAL board */
STM_EVAL_PBInit(Button_UP, Mode_GPIO);
STM_EVAL_PBInit(Button_DOWN, Mode_GPIO);
STM_EVAL_PBInit(Button_LEFT, Mode_GPIO);
STM_EVAL_PBInit(Button_RIGHT, Mode_GPIO);
STM_EVAL_PBInit(Button_SEL, Mode_GPIO);
#else
/* Configure the IO Expander */
if (IOE_Config())
{
/* IO Expander config error */
while(1);
}
#endif
/* USARTy configuration ------------------------------------------------------*/
/* USARTy configured as follow:
- BaudRate = 115200 baud
- Word Length = 8 Bits
- One Stop Bit
- No parity
- Hardware flow control disabled (RTS and CTS signals)
- Receive and transmit enabled
*/
USART_InitStructure.USART_BaudRate = 115200;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No ;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
/* Configure the USARTy */
USART_Init(USARTy, &USART_InitStructure);
/* Enable the USARTy */
USART_Cmd(USARTy, ENABLE);
/* Set the USARTy prescaler */
USART_SetPrescaler(USARTy, 0x1);
/* Configure the USARTy IrDA mode */
USART_IrDAConfig(USARTy, USART_IrDAMode_Normal);
/* Enable the USARTy IrDA mode */
USART_IrDACmd(USARTy, ENABLE);
while (1)
{
/* Read Key */
MyKey = ReadKey();
switch(MyKey)
{
case JOY_UP:
USART_SendData(USARTy, JOY_UP);
while(USART_GetFlagStatus(USARTy, USART_FLAG_TXE) == RESET)
{
}
break;
case JOY_DOWN:
USART_SendData(USARTy, JOY_DOWN);
while(USART_GetFlagStatus(USARTy, USART_FLAG_TXE) == RESET)
{
}
break;
case JOY_LEFT:
USART_SendData(USARTy, JOY_LEFT);
while(USART_GetFlagStatus(USARTy, USART_FLAG_TXE) == RESET)
{
}
break;
case JOY_RIGHT:
USART_SendData(USARTy, JOY_RIGHT);
while(USART_GetFlagStatus(USARTy, USART_FLAG_TXE) == RESET)
{
}
break;
case JOY_CENTER:
USART_SendData(USARTy, JOY_CENTER);
while(USART_GetFlagStatus(USARTy, USART_FLAG_TXE) == RESET)
{
}
break;
case JOY_NONE:
USART_SendData(USARTy, JOY_NONE);
while(USART_GetFlagStatus(USARTy, USART_FLAG_TXE) == RESET)
{
}
//.........这里部分代码省略.........
开发者ID:phungyen,项目名称:stm32f10x_stdperiph_lib,代码行数:101,代码来源:main.c
示例2: main
/**
* @brief Main program
* @param None
* @retval None
*/
int main(void)
{
/*!< At this stage the microcontroller clock setting is already configured,
this is done through SystemInit() function which is called from startup
file (startup_stm32f10x_xx.s) before to branch to application main.
To reconfigure the default setting of SystemInit() function, refer to
system_stm32f10x.c file
*/
/* System Clocks Configuration */
RCC_Configuration();
/* GPIO Configuration */
GPIO_Configuration();
/* TIM1 and Timers(TIM3 and TIM4) synchronisation in parallel mode -----------
1/TIM1 is configured as Master Timer:
- PWM Mode is used
- The TIM1 Update event is used as Trigger Output
2/TIM3 and TIM4 are slaves for TIM1,
- PWM Mode is used
- The ITR0(TIM1) is used as input trigger for both slaves
- Gated mode is used, so starts and stops of slaves counters
are controlled by the Master trigger output signal(update event).
o For Low-density, Medium-density, High-density and Connectivity line devices:
The TIMxCLK is fixed to 72 MHz, Prescaler = 0 so the TIM1 counter clock is 72 MHz.
The Master Timer TIM1 is running at:
TIM1 frequency = TIM1 counter clock / (TIM1_Period + 1) = 281.250 KHz
and the duty cycle is equal to: TIM1_CCR1/(TIM1_ARR + 1) = 50%
The TIM3 is running at:
(TIM1 frequency)/ ((TIM3 period +1)* (Repetion_Counter+1)) = 18.750 KHz and
a duty cycle equal to TIM3_CCR1/(TIM3_ARR + 1) = 33.3%
The TIM4 is running at:
(TIM1 frequency)/ ((TIM4 period +1)* (Repetion_Counter+1)) = 28.125 KHz and
a duty cycle equal to TIM4_CCR1/(TIM4_ARR + 1) = 50%
o For Low-Density Value line and Medium-Density Value line devices:
The TIMxCLK is fixed to 24 MHz, Prescaler = 0 so the TIM1 counter clock is 24 MHz.
TIM1 frequency = 93.75 KHz
TIM3 frequency = 6.25 KHz
TIM4 frequency = 9.375 KHz
--------------------------------------------------------------------------- */
/* TIM3 Peripheral Configuration ----------------------------------------*/
/* TIM3 Slave Configuration: PWM1 Mode */
TIM_TimeBaseStructure.TIM_Period = 2;
TIM_TimeBaseStructure.TIM_Prescaler = 0;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = 1;
TIM_OC1Init(TIM3, &TIM_OCInitStructure);
/* Slave Mode selection: TIM3 */
TIM_SelectSlaveMode(TIM3, TIM_SlaveMode_Gated);
TIM_SelectInputTrigger(TIM3, TIM_TS_ITR0);
/* TIM4 Peripheral Configuration ----------------------------------------*/
/* TIM4 Slave Configuration: PWM1 Mode */
TIM_TimeBaseStructure.TIM_Period = 1;
TIM_TimeBaseStructure.TIM_Prescaler = 0;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = 1;
TIM_OC1Init(TIM4, &TIM_OCInitStructure);
/* Slave Mode selection: TIM4 */
TIM_SelectSlaveMode(TIM4, TIM_SlaveMode_Gated);
TIM_SelectInputTrigger(TIM4, TIM_TS_ITR0);
/* TIM1 Peripheral Configuration ----------------------------------------*/
/* Time Base configuration */
TIM_TimeBaseStructure.TIM_Prescaler = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseStructure.TIM_Period = 255;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_RepetitionCounter = 4;
TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
//.........这里部分代码省略.........
开发者ID:WaelG,项目名称:Thinner-Client,代码行数:101,代码来源:main.c
示例3: main
/**
* @brief Main program
* @param None
* @retval None
*/
int main(void)
{
/*!< At this stage the microcontroller clock setting is already configured,
this is done through SystemInit() function which is called from startup
file (startup_stm32f10x_xx.s) before to branch to application main.
To reconfigure the default setting of SystemInit() function, refer to
system_stm32f10x.c file
*/
/* System Clocks Configuration */
RCC_Configuration();
/* Configure the GPIO ports */
GPIO_Configuration();
/* Initialize Leds mounted on STM3210X-EVAL board */
STM_EVAL_LEDInit(LED1);
STM_EVAL_LEDInit(LED2);
STM_EVAL_LEDInit(LED3);
STM_EVAL_LEDInit(LED4);
/* USARTy configuration ------------------------------------------------------*/
/* USARTy configured as follow:
- BaudRate = 115200 baud
- Word Length = 8 Bits
- One Stop Bit
- No parity
- Hardware flow control disabled (RTS and CTS signals)
- Receive and transmit enabled
*/
USART_InitStructure.USART_BaudRate = 115200;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No ;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
/* Configure the USARTy */
USART_Init(USARTy, &USART_InitStructure);
/* Enable the USARTy */
USART_Cmd(USARTy, ENABLE);
/* Set the USARTy prescaler */
USART_SetPrescaler(USARTy, 0x1);
/* Configure the USARTy IrDA mode */
USART_IrDAConfig(USARTy, USART_IrDAMode_Normal);
/* Enable the USARTy IrDA mode */
USART_IrDACmd(USARTy, ENABLE);
while (1)
{
/* Wait until a byte is received */
while(USART_GetFlagStatus(USARTy, USART_FLAG_RXNE) == RESET)
{
}
/* Read the received byte */
ReceivedData = (JOYState_TypeDef)USART_ReceiveData(USARTy);
switch(ReceivedData)
{
case JOY_UP:
STM_EVAL_LEDOn(LED1);
STM_EVAL_LEDOff(LED2);
STM_EVAL_LEDOff(LED3);
STM_EVAL_LEDOff(LED4);
break;
case JOY_DOWN:
STM_EVAL_LEDOn(LED2);
STM_EVAL_LEDOff(LED1);
STM_EVAL_LEDOff(LED3);
STM_EVAL_LEDOff(LED4);
break;
case JOY_LEFT:
STM_EVAL_LEDOn(LED3);
STM_EVAL_LEDOff(LED1);
STM_EVAL_LEDOff(LED2);
STM_EVAL_LEDOff(LED4);
break;
case JOY_RIGHT:
STM_EVAL_LEDOn(LED4);
STM_EVAL_LEDOff(LED1);
STM_EVAL_LEDOff(LED2);
STM_EVAL_LEDOff(LED3);
break;
case JOY_SEL:
STM_EVAL_LEDOn(LED1);
STM_EVAL_LEDOn(LED2);
STM_EVAL_LEDOn(LED3);
STM_EVAL_LEDOn(LED4);
break;
case JOY_NONE:
break;
default:
break;
//.........这里部分代码省略.........
开发者ID:Axis-Labs,项目名称:STM32,代码行数:101,代码来源:main.c
示例4: main
/**
* @brief Main program
* @param None
* @retval None
*/
int main(void)
{
/*!< At this stage the microcontroller clock setting is already configured,
this is done through SystemInit() function which is called from startup
file (startup_stm32f10x_xx.s) before to branch to application main.
To reconfigure the default setting of SystemInit() function, refer to
system_stm32f10x.c file
*/
/* System clocks configuration ---------------------------------------------*/
RCC_Configuration();
/* NVIC configuration ------------------------------------------------------*/
NVIC_Configuration();
/* GPIO configuration ------------------------------------------------------*/
GPIO_Configuration();
/* Enable I2C1 and I2C2 ----------------------------------------------------*/
I2C_Cmd(I2C1, ENABLE);
I2C_Cmd(I2C2, ENABLE);
/* I2C1 configuration ------------------------------------------------------*/
I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;
I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2;
I2C_InitStructure.I2C_OwnAddress1 = I2C1_SLAVE_ADDRESS7;
I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;
I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
I2C_InitStructure.I2C_ClockSpeed = ClockSpeed;
I2C_Init(I2C1, &I2C_InitStructure);
/* I2C2 configuration ------------------------------------------------------*/
I2C_InitStructure.I2C_OwnAddress1 = I2C2_SLAVE_ADDRESS7;
I2C_Init(I2C2, &I2C_InitStructure);
I2C_CalculatePEC(I2C1, ENABLE);
I2C_CalculatePEC(I2C2, ENABLE);
/* Enable I2C1 event and buffer interrupts */
I2C_ITConfig(I2C1, I2C_IT_EVT | I2C_IT_BUF, ENABLE);
/* Enable I2C1 event and buffer interrupts */
I2C_ITConfig(I2C2, I2C_IT_EVT | I2C_IT_BUF, ENABLE);
/*----- Transmission Phase -------------------------------------------------*/
/* Set data direction to transmitter */
Direction = Transmitter;
/* Send I2C1 START condition */
I2C_GenerateSTART(I2C1, ENABLE);
/* Wait until all data and the PEC value are received */
/* I2C2_Buffer_Rx buffer will contain the data plus the PEC value */
while(Rx2_Idx < Tx1BufferSize)
{
}
/* Check the corectness of the I2C1 transmitted data */
TransferStatus1 = Buffercmp(I2C1_Buffer_Tx, I2C2_Buffer_Rx, Tx1BufferSize);
/* TransferStatus1 = PASSED, if the transmitted and received data
are equal */
/* TransferStatus1 = FAILED, if the transmitted and received data
are different */
/*----- Reception Phase --------------------------------------------------*/
/* Re-configure and enable I2C1 event interrupt to have the higher priority */
NVIC_InitStructure.NVIC_IRQChannel = I2C1_EV_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
/* Wait until end of Slave transmission */
while(Rx1_Idx < Tx2BufferSize)
{
}
/* Check the corectness of the I2C1 received data */
TransferStatus2 = Buffercmp(I2C2_Buffer_Tx, I2C1_Buffer_Rx, Tx2BufferSize);
/* TransferStatus2 = PASSED, if the transmitted and received data
are equal */
/* TransferStatus2 = FAILED, if the transmitted and received data
are different */
while(1)
{
}
}
开发者ID:neirons,项目名称:pythondatalogger,代码行数:90,代码来源:main.c
示例5: main
int main(void)
{
u32 rx=0, ry=0, fx, fy, ff;
RCC_Configuration();
GPIO_Configuration();
test.caption= "WINDOWS 0.1";
test.rc.x=20;
test.rc.y=20;
test.rc.h=40;
test.rc.w=80;
test.style=GDI_WINCAPTION|GDI_WINCAPTION_LEFT;
vidInit();
sysInitSystemTimer();
vidClearScreen();
//CRT_Draw_Ring(100, VID_PIXELS_X/2, VID_PIXELS_Y/2,1, 2*3.1415/12);
//sysDelayMs(2000);
//CRT_Draw_Ring(100, VID_PIXELS_X/2, VID_PIXELS_Y/2,1, 2*3.1415/12);
//CRT_Draw_Ring(100, VID_PIXELS_X/2, VID_PIXELS_Y/2, 2, 2*3.1415/12);
// siInitialScreen();
//CRT_Draw_Ring(100, VID_PIXELS_X/2, VID_PIXELS_Y/2, 1);
//vidClearScreen();
//fx=1; fy = 1;
//rx=10;ry=10;
//ff = rand()%100;
//while(ff--){
//rx = rand()%(400);
//ry = rand()%(200);
//}
//
gdiDrawTextEx(30, 170, "KVAOAR",1);
gdiDrawTextEx(340, 170, "CASA",1);
gdiDrawTextEx(340, 30, "STM32F103",1);
gdiDrawTextEx(340, 50, "VGA OUT",1);
gdiDrawTextEx(340, 100, "PYTHAGORAS",1);
gdiDrawTextEx(340, 120, "TREE",1);
gdiDrawTextEx(30, 30, "22.05.16",1);
Draw( VID_PIXELS_X/2,VID_PIXELS_Y/2+50,18,7,1.57);
while(1)
{
// if((ff++%(rand()%200) )==0){
//
//
// fx = rand()%2 ? 0:(rand()%2 ? -1:1);
// fy = rand()%2 ? 0:(rand()%2 ? -1:1);
// }
//
//}
// ry++;
// rx++;
// fx=ran(1)%(400/10);
// fy=ran(1)%(200/10);
//
// ff=rand(3)%2;
// CRT_Draw_Ring(100, VID_PIXELS_X/2, VID_PIXELS_Y/2, 2, 2*3.1415/12);
//drawCircle(VID_PIXELS_X/2, VID_PIXELS_Y/2, 70);
// CRT_Draw_Ring(100, VID_PIXELS_X/2, VID_PIXELS_Y/2,0, 1);
//400*200
//#define GDI_ROP_COPY 0
//#define GDI_ROP_XOR 1
//#define GDI_ROP_AND 2
// gdiDrawTextEx(VID_PIXELS_X/2, VID_PIXELS_Y/2, "STM32", 0);
// gdiCircle(VID_PIXELS_X/2, VID_PIXELS_Y/2, 50, 0);
// gdiLine(0, (VID_PIXELS_X/2), (VID_PIXELS_Y/2)-50, VID_PIXELS_X/2, VID_PIXELS_Y/2, 0);
// gdiPoint(0, rx, ry, 0);
//
// rx += fx;
// ry += fy;
//
//
// if ((rx >= 400 )||(gdiTestPoint( rx, ry)==1 )) {
//.........这里部分代码省略.........
开发者ID:Casa2011,项目名称:devices,代码行数:101,代码来源:main.c
示例6: main
/**
* @brief Main program
* @param None
* @retval None
*/
int main(void)
{
/*!< At this stage the microcontroller clock setting is already configured,
this is done through SystemInit() function which is called from startup
file (startup_stm32f10x_xx.s) before to branch to application main.
To reconfigure the default setting of SystemInit() function, refer to
system_stm32f10x.c file
*/
/* RCC configuration */
RCC_Configuration();
/* NVIC configuration */
NVIC_Configuration();
/* GPIO configuration */
GPIO_Configuration();
/* Configure the CEC peripheral */
CEC_InitStructure.CEC_BitTimingMode = CEC_BitTimingStdMode;
CEC_InitStructure.CEC_BitPeriodMode = CEC_BitPeriodStdMode;
CEC_Init(&CEC_InitStructure);
/* Set Prescaler value for APB1 clock PCLK1 = 24MHz */
CEC_SetPrescaler(0x4AF);
/* Set the CEC initiator address */
CEC_OwnAddressConfig(MY_DEVICE_ADDRESS);
/* Activate CEC interrupts associated to the set of RBTF,RERR, TBTF, TERR flags */
CEC_ITConfig(ENABLE);
/* Enable CEC */
CEC_Cmd(ENABLE);
/* If a frame has been received */
while(ReceivedFrame == 0)
{
}
/* Check the received data with the send ones */
TransferStatus = Buffercmp(TransmitBuffer, ReceiveBuffer, ByteNumber);
/* TransferStatus = PASSED, if the data transmitted from CEC Device1 and
received by CEC Device2 are the same */
/* TransferStatus = FAILED, if the data transmitted from CEC Device1 and
received by CEC Device2 are different */
if (TransferStatus == PASSED)
{
/* OK */
/* Turn on LED1 */
STM_EVAL_LEDOn(LED1);
}
else
{
/* KO */
/* Turn on LED2 */
STM_EVAL_LEDOn(LED2);
}
while(1)
{
}
}
开发者ID:0x00f,项目名称:STM32F1-workarea,代码行数:68,代码来源:main.c
示例7: main
/**
* @brief Main program
* @param None
* @retval None
*/
int main(void)
{
/*!< At this stage the microcontroller clock setting is already configured,
this is done through SystemInit() function which is called from startup
file (startup_stm32f10x_xx.s) before to branch to application main.
To reconfigure the default setting of SystemInit() function, refer to
system_stm32f10x.c file
*/
/* System clocks configuration ---------------------------------------------*/
RCC_Configuration();
/* GPIO configuration ------------------------------------------------------*/
GPIO_Configuration();
/* Enable I2C1 and I2C2 ----------------------------------------------------*/
I2C_Cmd(I2C1, ENABLE);
I2C_Cmd(I2C2, ENABLE);
/* I2C1 configuration ------------------------------------------------------*/
I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;
I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2;
I2C_InitStructure.I2C_OwnAddress1 = I2C1_SLAVE_ADDRESS7;
I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;
I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
I2C_InitStructure.I2C_ClockSpeed = ClockSpeed;
I2C_Init(I2C1, &I2C_InitStructure);
/* I2C2 configuration ------------------------------------------------------*/
I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_10bit;
I2C_InitStructure.I2C_OwnAddress1 = I2C2_SLAVE_ADDRESS10;
I2C_Init(I2C2, &I2C_InitStructure);
/*----- Transmission Phase -----*/
/* Send I2C1 START condition */
I2C_GenerateSTART(I2C1, ENABLE);
/* Test on I2C1 EV5 and clear it */
while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT));
/* Send Header to I2C2 for write */
I2C_SendData(I2C1, HeaderAddressWrite);
/* Test on I2C1 EV9 and clear it */
while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_ADDRESS10));
/* Send I2C2 slave Address for write */
I2C_Send7bitAddress(I2C1, I2C2_SLAVE_ADDRESS7, I2C_Direction_Transmitter);
/* Test on I2C2 EV1 and clear it */
while(!I2C_CheckEvent(I2C2, I2C_EVENT_SLAVE_RECEIVER_ADDRESS_MATCHED));
/* Test on I2C1 EV6 and clear it */
while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));
/* Send data */
while (RxIdx < BufferSize)
{
/* Send I2C1 data */
I2C_SendData(I2C1, I2C1_Buffer_Tx[TxIdx++]);
/* Test on I2C2 EV2 and clear it */
while(!I2C_CheckEvent(I2C2, I2C_EVENT_SLAVE_BYTE_RECEIVED));
/* Store received data on I2C2 */
I2C2_Buffer_Rx[RxIdx++] = I2C_ReceiveData(I2C2);
/* Test on I2C1 EV8 and clear it */
while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED));
}
/* Send I2C1 STOP Condition */
I2C_GenerateSTOP(I2C1, ENABLE);
/* Test on I2C2 EV4 and clear it */
while(!I2C_CheckEvent(I2C2, I2C_EVENT_SLAVE_STOP_DETECTED));
/* Clear I2C2 STOPF flag: read operation to I2C_SR1 followed by a
write operation to I2C_CR1 */
(void)(I2C_GetFlagStatus(I2C2, I2C_FLAG_STOPF));
I2C_Cmd(I2C2, ENABLE);
/* Check the corectness of written data */
TransferStatus = Buffercmp(I2C1_Buffer_Tx, I2C2_Buffer_Rx, BufferSize);
/* TransferStatus = PASSED, if the transmitted and received data
are equal */
/* TransferStatus = FAILED, if the transmitted and received data
are different */
while (1)
{
}
}
开发者ID:WaelG,项目名称:Thinner-Client,代码行数:86,代码来源:main.c
示例8: main
/**
* @brief Main program.
* @param None
* @retval : None
*/
int main(void)
{
/* System Clocks Configuration */
RCC_Configuration();
/* PF.06, PF.07 and PF.08 config to drive LD1, LD2 and LD3 *****************/
/* Enable GPIOF clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF, ENABLE);
/* Configure PF.06, PF.07 and PF.08 as Output push-pull */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOF, &GPIO_InitStructure);
/* Enable the FSMC Clock */
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
/* FSMC Initialization */
FSMC_NAND_Init();
/* NAND read ID command */
FSMC_NAND_ReadID(&NAND_ID);
/* Verify the NAND ID */
if((NAND_ID.Maker_ID == NAND_ST_MakerID) && (NAND_ID.Device_ID == NAND_ST_DeviceID))
{
/* NAND memory address to write to */
WriteReadAddr.Zone = 0x00;
WriteReadAddr.Block = 0x00;
WriteReadAddr.Page = 0x00;
/* Erase the NAND first Block */
status = FSMC_NAND_EraseBlock(WriteReadAddr);
/* Write data to FSMC NAND memory */
/* Fill the buffer to send */
Fill_Buffer(TxBuffer, BUFFER_SIZE , 0x66);
status = FSMC_NAND_WriteSmallPage(TxBuffer, WriteReadAddr, PageNumber);
/* Read back the written data */
status = FSMC_NAND_ReadSmallPage (RxBuffer, WriteReadAddr, PageNumber);
/* Verify the written data */
for(j = 0; j < BUFFER_SIZE; j++)
{
if(TxBuffer[j] != RxBuffer[j])
{
WriteReadStatus++;
}
}
if (WriteReadStatus == 0)
{ /* OK */
/* Turn on LD1 */
GPIO_SetBits(GPIOF, GPIO_Pin_6);
}
else
{ /* KO */
/* Turn on LD2 */
GPIO_SetBits(GPIOF, GPIO_Pin_7);
}
}
else
{
/* Turn on LD3 */
GPIO_SetBits(GPIOF, GPIO_Pin_8);
}
while(1)
{
}
}
开发者ID:jiesse,项目名称:time-meter,代码行数:80,代码来源:main.c
示例9: main
/**
* @brief Main program
* @param None
* @retval None
*/
int main(void)
{
/*!< At this stage the microcontroller clock setting is already configured,
this is done through SystemInit() function which is called from startup
file (startup_stm32f10x_xx.s) before to branch to application main.
To reconfigure the default setting of SystemInit() function, refer to
system_stm32f10x.c file
*/
/* System Clocks Configuration */
RCC_Configuration();
/* Configure the GPIO ports */
GPIO_Configuration();
/* TIM4 configuration: One Pulse mode ------------------------
The external signal is connected to TIM4_CH2 pin (PB.07),
The Rising edge is used as active edge,
The One Pulse signal is output on TIM4_CH1 pin (PB.06)
The TIM_Pulse defines the delay value
The (TIM_Period - TIM_Pulse) defines the One Pulse value.
TIM2CLK = SystemCoreClock, we want to get TIM2 counter clock at 24 MHz:
- Prescaler = (TIM2CLK / TIM2 counter clock) - 1
The Autoreload value is 65535 (TIM4->ARR), so the maximum frequency value
to trigger the TIM4 input is 24000000/65535 = 300 Hz.
The TIM_Pulse defines the delay value, the delay value is fixed
to 682.6 us:
delay = CCR1/TIM4 counter clock = 682.6 us.
The (TIM_Period - TIM_Pulse) defines the One Pulse value,
the pulse value is fixed to 2.048 ms:
One Pulse value = (TIM_Period - TIM_Pulse) / TIM4 counter clock = 2.048 ms.
* SystemCoreClock is set to 72 MHz for Low-density, Medium-density, High-density
and Connectivity line devices and to 24 MHz for Value line devices
------------------------------------------------------------ */
/* Compute the prescaler value */
PrescalerValue = (uint16_t) (SystemCoreClock / 24000000) - 1;
/* Time base configuration */
TIM_TimeBaseStructure.TIM_Period = 65535;
TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
/* TIM4 PWM2 Mode configuration: Channel1 */
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = 16383;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OC1Init(TIM4, &TIM_OCInitStructure);
/* TIM4 configuration in Input Capture Mode */
TIM_ICStructInit(&TIM_ICInitStructure);
TIM_ICInitStructure.TIM_Channel = TIM_Channel_2;
TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;
TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
TIM_ICInitStructure.TIM_ICFilter = 0;
TIM_ICInit(TIM4, &TIM_ICInitStructure);
/* One Pulse Mode selection */
TIM_SelectOnePulseMode(TIM4, TIM_OPMode_Single);
/* Input Trigger selection */
TIM_SelectInputTrigger(TIM4, TIM_TS_TI2FP2);
/* Slave Mode selection: Trigger Mode */
TIM_SelectSlaveMode(TIM4, TIM_SlaveMode_Trigger);
while (1)
{}
}
开发者ID:Joe-Merten,项目名称:Stm32,代码行数:84,代码来源:main.c
示例10: main
/**
* @brief Main program
* @param None
* @retval None
*/
int main(void)
{
/*!< At this stage the microcontroller clock setting is already configured,
this is done through SystemInit() function which is called from startup
file (startup_stm32f10x_xx.s) before to branch to application main.
To reconfigure the default setting of SystemInit() function, refer to
system_stm32f10x.c file
*/
/* System Clocks Configuration */
RCC_Configuration();
/* Configure the GPIO ports */
GPIO_Configuration();
/* USARTy and USARTz configuration -------------------------------------------*/
/* USARTy and USARTz configured as follow:
- BaudRate = 230400 baud
- Word Length = 8 Bits
- One Stop Bit
- No parity
- Hardware flow control disabled (RTS and CTS signals)
- Receive and transmit enabled
*/
USART_InitStructure.USART_BaudRate = 230400;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
/* Configure USARTy */
USART_Init(USARTy, &USART_InitStructure);
/* Configure USARTz */
USART_Init(USARTz, &USART_InitStructure);
/* Enable the USARTy */
USART_Cmd(USARTy, ENABLE);
/* Enable the USARTz */
USART_Cmd(USARTz, ENABLE);
/* Enable USARTy Half Duplex Mode*/
USART_HalfDuplexCmd(USARTy, ENABLE);
/* Enable USARTz Half Duplex Mode*/
USART_HalfDuplexCmd(USARTz, ENABLE);
while(NbrOfDataToRead2--)
{
/* Wait until end of transmit */
while(USART_GetFlagStatus(USARTy, USART_FLAG_TXE) == RESET)
{
}
/* Write one byte in the USARTy Transmit Data Register */
USART_SendData(USARTy, TxBuffer1[TxCounter1++]);
/* Wait the byte is entirtly received by USARTz */
while(USART_GetFlagStatus(USARTz, USART_FLAG_RXNE) == RESET)
{
}
/* Store the received byte in the RxBuffer2 */
RxBuffer2[RxCounter2++] = USART_ReceiveData(USARTz);
}
/* Clear the USARTy Data Register */
USART_ReceiveData(USARTy);
while(NbrOfDataToRead1--)
{
/* Wait until end of transmit */
while(USART_GetFlagStatus(USARTz, USART_FLAG_TXE)== RESET)
{
}
/* Write one byte in the USARTz Transmit Data Register */
USART_SendData(USARTz, TxBuffer2[TxCounter2++]);
/* Wait the byte is entirtly received by USARTy */
while(USART_GetFlagStatus(USARTy,USART_FLAG_RXNE) == RESET)
{
}
/* Store the received byte in the RxBuffer1 */
RxBuffer1[RxCounter1++] = USART_ReceiveData(USARTy);
}
/* Check the received data with the send ones */
TransferStatus1 = Buffercmp(TxBuffer1, RxBuffer2, TxBufferSize1);
/* TransferStatus = PASSED, if the data transmitted from USARTy and
received by USARTz are the same */
/* TransferStatus = FAILED, if the data transmitted from USARTy and
received by USARTz are different */
TransferStatus2 = Buffercmp(TxBuffer2, RxBuffer1, TxBufferSize2);
/* TransferStatus = PASSED, if the data transmitted from USARTz and
received by USARTy are the same */
/* TransferStatus = FAILED, if the data transmitted from USARTz and
received by USARTy are different */
//.........这里部分代码省略.........
开发者ID:ngocthanhtnt,项目名称:ledshow,代码行数:101,代码来源:main.c
示例11: main
/**
* @brief Main program
* @param None
* @retval None
*/
int main(void)
{
/* System Clocks Configuration */
RCC_Configuration();
/* NVIC configuration */
NVIC_Configuration();
/* Configure the GPIO ports */
GPIO_Configuration();
/* Configure the EXTI Controller */
EXTI_Configuration();
/* SC_USART configuration ----------------------------------------------------*/
/* SC_USART configured as follow:
- Word Length = 9 Bits
- 0.5 Stop Bit
- Even parity
- BaudRate = 12096 baud
- Hardware flow control disabled (RTS and CTS signals)
- Tx and Rx enabled
- USART Clock enabled
- USART CPOL Low
- USART CPHA on first edge
- USART Last Bit Clock Enabled
*/
/* SC_USART Clock set to 4.5MHz (PCLK1 = 36 MHZ / 8) */
USART_SetPrescaler(SC_USART, 0x04);
/* SC_USART Guard Time set to 2 Bit */
USART_SetGuardTime(SC_USART, 0x2);
USART_ClockInitStructure.USART_Clock = USART_Clock_Enable;
USART_ClockInitStructure.USART_CPOL = USART_CPOL_Low;
USART_ClockInitStructure.USART_CPHA = USART_CPHA_1Edge;
USART_ClockInitStructure.USART_LastBit = USART_LastBit_Enable;
USART_ClockInit(SC_USART, &USART_ClockInitStructure);
USART_InitStructure.USART_BaudRate = 12096;
USART_InitStructure.USART_WordLength = USART_WordLength_9b;
USART_InitStructure.USART_StopBits = USART_StopBits_1_5;
USART_InitStructure.USART_Parity = USART_Parity_Even;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_Init(SC_USART, &USART_InitStructure);
/* Enable the SC_USART Parity Error Interrupt */
USART_ITConfig(SC_USART, USART_IT_PE, ENABLE);
/* Enable SC_USART */
USART_Cmd(SC_USART, ENABLE);
/* Enable the NACK Transmission */
USART_SmartCardNACKCmd(SC_USART, ENABLE);
/* Enable the Smartcard Interface */
USART_SmartCardCmd(SC_USART, ENABLE);
/* Loop while no Smartcard is detected */
while(CardInserted == 0)
{
}
/* Read Smartcard ATR response */
for(index = 0; index < 40; index++, Counter = 0)
{
while((USART_GetFlagStatus(SC_USART, USART_FLAG_RXNE) == RESET) && (Counter != SC_Receive_Timeout))
{
Counter++;
}
if(Counter != SC_Receive_Timeout)
{
DST_Buffer[index] = USART_ReceiveData(SC_USART);
}
}
/* Decode ATR */
CardProtocol = SC_decode_Answer2reset(DST_Buffer);
/* Test if the inserted card is ISO7816-3 T=0 compatible */
if(CardProtocol == 0)
{
/* Inserted card is ISO7816-3 T=0 compatible */
ATRDecodeStatus = PASSED;
}
else
{
/* Inserted Smartcard is not ISO7816-3 T=0 compatible */
ATRDecodeStatus = FAILED;
}
while (1)
//.........这里部分代码省略.........
开发者ID:DerekTan,项目名称:STM32F107_ucosIII,代码行数:101,代码来源:main.c
示例12: main
/**
* @brief Main program
* @param None
* @retval None
*/
int main(void)
{
/*!< At this stage the microcontroller clock setting is already configured,
this is done through SystemInit() function which is called from startup
file (startup_stm32f10x_xx.s) before to branch to application main.
To reconfigure the default setting of SystemInit() function, refer to
system_stm32f10x.c file
*/
/* System clocks configuration ---------------------------------------------*/
RCC_Configuration();
/* GPIO configuration ------------------------------------------------------*/
GPIO_Configuration();
/* DMA1 channel1 configuration ----------------------------------------------*/
DMA_DeInit(DMA1_Channel1);
DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)ADC1_DR_Address;
DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)ADC_DualConvertedValueTab;
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
DMA_InitStructure.DMA_BufferSize = 16;
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word;
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word;
DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
DMA_InitStructure.DMA_Priority = DMA_Priority_High;
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
DMA_Init(DMA1_Channel1, &DMA_InitStructure);
/* Enable DMA1 Channel1 */
DMA_Cmd(DMA1_Channel1, ENABLE);
/* ADC1 configuration ------------------------------------------------------*/
ADC_InitStructure.ADC_Mode = ADC_Mode_RegSimult;
ADC_InitStructure.ADC_ScanConvMode = ENABLE;
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfChannel = 2;
ADC_Init(ADC1, &ADC_InitStructure);
/* ADC1 regular channels configuration */
ADC_RegularChannelConfig(ADC1, ADC_Channel_14, 1, ADC_SampleTime_239Cycles5);
ADC_RegularChannelConfig(ADC1, ADC_Channel_17, 2, ADC_SampleTime_239Cycles5);
/* Enable ADC1 DMA */
ADC_DMACmd(ADC1, ENABLE);
/* ADC2 configuration ------------------------------------------------------*/
ADC_InitStructure.ADC_Mode = ADC_Mode_RegSimult;
ADC_InitStructure.ADC_ScanConvMode = ENABLE;
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfChannel = 2;
ADC_Init(ADC2, &ADC_InitStructure);
/* ADC2 regular channels configuration */
ADC_RegularChannelConfig(ADC2, ADC_Channel_11, 1, ADC_SampleTime_239Cycles5);
ADC_RegularChannelConfig(ADC2, ADC_Channel_12, 2, ADC_SampleTime_239Cycles5);
/* Enable ADC2 external trigger conversion */
ADC_ExternalTrigConvCmd(ADC2, ENABLE);
/* Enable ADC1 */
ADC_Cmd(ADC1, ENABLE);
/* Enable Vrefint channel17 */
ADC_TempSensorVrefintCmd(ENABLE);
/* Enable ADC1 reset calibaration register */
ADC_ResetCalibration(ADC1);
/* Check the end of ADC1 reset calibration register */
while(ADC_GetResetCalibrationStatus(ADC1));
/* Start ADC1 calibaration */
ADC_StartCalibration(ADC1);
/* Check the end of ADC1 calibration */
while(ADC_GetCalibrationStatus(ADC1));
/* Enable ADC2 */
ADC_Cmd(ADC2, ENABLE);
/* Enable ADC2 reset calibaration register */
ADC_ResetCalibration(ADC2);
/* Check the end of ADC2 reset calibration register */
while(ADC_GetResetCalibrationStatus(ADC2));
/* Start ADC2 calibaration */
ADC_StartCalibration(ADC2);
/* Check the end of ADC2 calibration */
while(ADC_GetCalibrationStatus(ADC2));
/* Start ADC1 Software Conversion */
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
/* Test on DMA1 channel1 transfer complete flag */
while(!DMA_GetFlagStatus(DMA1_FLAG_TC1));
/* Clear DMA1 channel1 transfer complete flag */
DMA_ClearFlag(DMA1_FLAG_TC1);
//.........这里部分代码省略.........
开发者ID:Dzenik,项目名称:QuadVolucer,代码行数:101,代码来源:main.c
示例13: main
/**
* @brief Main program
* @param None
* @retval None
*/
int main(void)
{
/* System clocks configuration ---------------------------------------------*/
RCC_Configuration();
/* NVIC configuration ------------------------------------------------------*/
NVIC_Configuration();
/* GPIO configuration ------------------------------------------------------*/
GPIO_Configuration();
SPI_I2S_DeInit(SPI3);
SPI_I2S_DeInit(SPI2);
/* I2S peripheral configuration */
I2S_InitStructure.I2S_Standard = I2S_Standard_Phillips;
I2S_InitStructure.I2S_DataFormat = I2S_DataFormat_16bextended;
I2S_InitStructure.I2S_MCLKOutput = I2S_MCLKOutput_Disable;
I2S_InitStructure.I2S_AudioFreq = I2S_AudioFreq_48k;
I2S_InitStructure.I2S_CPOL = I2S_CPOL_Low;
/* I2S3 Master Transmitter to I2S2 Slave Receiver communication -----------*/
/* I2S3 configuration */
I2S_InitStructure.I2S_Mode = I2S_Mode_MasterTx;
I2S_Init(SPI3, &I2S_InitStructure);
/* I2S2 configuration */
I2S_InitStructure.I2S_Mode = I2S_Mode_SlaveRx;
I2S_Init(SPI2, &I2S_InitStructure);
/* Enable the I2S3 TxE interrupt */
SPI_I2S_ITConfig(SPI3, SPI_I2S_IT_TXE, ENABLE);
/* Enable the I2S2 RxNE interrupt */
SPI_I2S_ITConfig(SPI2, SPI_I2S_IT_RXNE, ENABLE);
/* Enable the I2S2 */
I2S_Cmd(SPI2, ENABLE);
/* Enable the I2S3 */
I2S_Cmd(SPI3, ENABLE);
/* Wait the end of communication */
while (RxIdx < 32)
{}
TransferStatus1 = Buffercmp(I2S2_Buffer_Rx, (uint16_t*)I2S3_Buffer_Tx, 32);
/* TransferStatus1 = PASSED, if the data transmitted from I2S3 and received by
I2S2 are the same
TransferStatus1 = FAILED, if the data transmitted from I2S3 and received by
I2S2 are different */
/* Reinitialize the buffers */
for (RxIdx = 0; RxIdx < 32; RxIdx++)
{
I2S2_Buffer_Rx[RxIdx] = 0;
}
TxIdx = 0;
RxIdx = 0;
SPI_I2S_DeInit(SPI3);
SPI_I2S_DeInit(SPI2);
/* I2S peripheral configuration */
I2S_InitStructure.I2S_Standard = I2S_Standard_Phillips;
I2S_InitStructure.I2S_DataFormat = I2S_DataFormat_24b;
I2S_InitStructure.I2S_MCLKOutput = I2S_MCLKOutput_Disable;
I2S_InitStructure.I2S_AudioFreq = I2S_AudioFreq_16k;
I2S_InitStructure.I2S_CPOL = I2S_CPOL_Low;
/* I2S3 Master Transmitter to I2S2 Slave Receiver communication -----------*/
/* I2S3 configuration */
I2S_InitStructure.I2S_Mode = I2S_Mode_MasterTx;
I2S_Init(SPI3, &I2S_InitStructure);
/* I2S2 configuration */
I2S_InitStructure.I2S_Mode = I2S_Mode_SlaveRx;
I2S_Init(SPI2, &I2S_InitStructure);
/* Enable the I2S3 TxE interrupt */
SPI_I2S_ITConfig(SPI3, SPI_I2S_IT_TXE, ENABLE);
/* Enable the I2S2 RxNE interrupt */
SPI_I2S_ITConfig(SPI2, SPI_I2S_IT_RXNE, ENABLE);
/* Enable the I2S2 */
I2S_Cmd(SPI2, ENABLE);
/* Enable the I2S3 */
I2S_Cmd(SPI3, ENABLE);
/* Wait the end of communication */
while (RxIdx < 32)
{
}
//.........这里部分代码省略.........
开发者ID:DerekTan,项目名称:STM32F107_ucosIII,代码行数:101,代码来源:main.c
示例14: main
/**
* @brief Main program.
* @param None
* @retval None
*/
int main(void)
{
int i;
RCC_Configuration();
GPIO_Configuration();
I2C_Configuration();
i=0;
/* Enable I2C2 */
I2C_Enable(BOARD_I2C,ENABLE);
/* Enable Acknowledge */
I2C_Acknowledge_Enable(BOARD_I2C,ENABLE);
/* Send a NACK for the next data byte which will be received into the shift register */
I2C_NACKPosition_Enable(BOARD_I2C,I2C_NACKPOSITION_NEXT);
/* Wait until I2C Bus is idle */
while(I2C_GetBitState(BOARD_I2C, I2C_FLAG_I2CBSY));
/* Send a start condition to I2C bus */
I2C_StartOnBus_Enable(BOARD_I2C, ENABLE);
/* Wait until SBSEND bit is set */
while(!I2C_StateDetect(BOARD_I2C, I2C_PROGRAMMINGMODE_MASTER_SBSEND));
/* Send slave address to I2C bus */
I2C_AddressingDevice_7bit(BOARD_I2C, SLAVE_ADDRESS7, I2C_DIRECTION_RECEIVER);
/* Disable ACK before clearing ADDSEND bit */
I2C_Acknowledge_Enable(BOARD_I2C, DISABLE);
/* Wait until ADDSEND bit is set and clear it */
while(!I2C_StateDetect(BOARD_I2C, I2C_PROGRAMMINGMODE_MASTER_RECEIVER_ADDSEND));
/* Wait until the last data byte is received into the shift register */
while(!I2C_GetBitState(BOARD_I2C, I2C_FLAG_BTC));
/* Send a stop condition */
I2C_StopOnBus_Enable(BOARD_I2C, ENABLE);
/* Wait until the reception data register is not empty */
while(!I2C_GetBitState(BOARD_I2C, I2C_FLAG_RBNE));
/* Read a data from I2C_DTR */
BOARD_I2C_Buf_Read[i++]=I2C_ReceiveData(BOARD_I2C);
/* Wait until the reception data register is not empty */
while(!I2C_GetBitState(BOARD_I2C, I2C_FLAG_RBNE));
/* Read a data from I2C_DTR */
BOARD_I2C_Buf_Read[i++]=I2C_ReceiveData(BOARD_I2C);
while(BOARD_I2C->CTLR1&0x0200);
I2C_NACKPosition_Enable(BOARD_I2C,I2C_NACKPOSITION_CURRENT);
/* Enable Acknowledge */
I2C_Acknowledge_Enable(BOARD_I2C, ENABLE);
while(1);
}
开发者ID:eeinz,项目名称:trochili,代码行数:68,代码来源:main.c
示例15: main
/**
* @brief Main program
* @param None
* @retval None
*/
int main(void)
{
/*!< At this stage the microcontroller clock setting is already configured,
this is done through SystemInit() function which is called from startup
file (startup_stm32f10x_xx.s) before to branch to application main.
To reconfigure the default setting of SystemInit() function, refer to
system_stm32f10x.c file
*/
/* System clocks configuration ---------------------------------------------*/
RCC_Configuration();
/* NVIC configuration ------------------------------------------------------*/
NVIC_Configuration();
/* GPIO configuration ------------------------------------------------------*/
GPIO_Configuration();
/* TIM1 configuration ------------------------------------------------------*/
/* Time Base configuration */
TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
TIM_TimeBaseStructure.TIM_Period = 0xFF;
TIM_TimeBaseStructure.TIM_Prescaler = 0x4;
TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
/* TIM1 channel1 configuration in PWM mode */
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = 0x7F;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
TIM_OC1Init(TIM1, &TIM_OCInitStructure);
/* DMA1 Channel1 Configuration ----------------------------------------------*/
DMA_DeInit(DMA1_Channel1);
DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address;
DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)ADC_RegularConvertedValueTab;
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
DMA_InitStructure.DMA_BufferSize = 32;
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
DMA_InitStructure.DMA_Priority = DMA_Priority_High;
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
DMA_Init(DMA1_Channel1, &DMA_InitStructure);
/* Enable DMA1 channel1 */
DMA_Cmd(DMA1_Channel1, ENABLE);
/* ADC1 configuration ------------------------------------------------------*/
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_InitStructure.ADC_ScanConvMode = DISABLE;
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
ADC_InitStructure.ADC_ExternalTrig
|
请发表评论