📄 stm32f10x_it.c
字号:
{
Send_Buffer[1] = 0x01;
}
else
{
Send_Buffer[1] = 0x00;
}
/*
UserToPMABufferCopy(Send_Buffer, ENDP1_TXADDR, 8);
SetEPTxCount(ENDP1, 8);
SetEPTxValid(ENDP1);
*/
UserToPMABufferCopy(Send_Buffer, ENDP2_TXADDR, 16);
SetEPTxCount(ENDP2, 16);
SetEPTxValid(ENDP2);
/* Clear the EXTI line pending bit */
EXTI_ClearITPendingBit(GPIO_KEY_EXTI_Line);
}
}
/*******************************************************************************
* Function Name : EXTI15_10_IRQHandler
* Description : This function handles External lines 15 to 10 interrupt request.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void EXTI15_10_IRQHandler(void)
{
uint8_t SBuffer[120];
printf("\n\rExti15_10_IRQ For 'TAMPER' \n\r");
if(EXTI_GetITStatus(GPIO_TAMPER_EXTI_Line) != RESET)
{
SBuffer[0] = 0x06;
if (GPIO_ReadInputDataBit(GPIO_TAMPER, GPIO_TAMPER_PIN) == Bit_RESET)
{
SBuffer[1] = 0x01;
}
else
{
SBuffer[1] = 0x00;
}
UserToPMABufferCopy(SBuffer, ENDP2_TXADDR, 8);
SetEPTxCount(ENDP2, 8);
SetEPTxValid(ENDP2);
/* Clear the EXTI line 13 pending bit */
EXTI_ClearITPendingBit(GPIO_TAMPER_EXTI_Line);
}
}
/******************************************************************************/
/* STM32F10x Peripherals Interrupt Handlers */
/******************************************************************************/
/**
* @brief This function handles I2C1 Event interrupt request.
* @param None
* @retval None
*/
#if 0
void I2C1_EV_IRQHandler(void)
{
switch (I2C_GetLastEvent(I2C1))
{
case I2C_EVENT_MASTER_MODE_SELECT: /* EV5 */
if(Direction == Transmitter)
{
/* Master Transmitter ----------------------------------------------*/
/* Send slave Address for write */
I2C_Send7bitAddress(I2C1, I2C2_SLAVE_ADDRESS7, I2C_Direction_Transmitter);
}
else
{
/* Master Receiver -------------------------------------------------*/
/* Send slave Address for read */
I2C_Send7bitAddress(I2C1, I2C2_SLAVE_ADDRESS7, I2C_Direction_Receiver);
}
break;
/* Master Transmitter --------------------------------------------------*/
/* Test on I2C1 EV6 and first EV8 and clear them */
case I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED:
/* Send the first data */
I2C_SendData(I2C1, I2C1_Buffer_Tx[Tx1_Idx++]);
break;
/* Test on I2C1 EV8 and clear it */
case I2C_EVENT_MASTER_BYTE_TRANSMITTING: /* Without BTF, EV8 */
if(Tx1_Idx < (Tx1BufferSize))
{
/* Transmit I2C1 data */
I2C_SendData(I2C1, I2C1_Buffer_Tx[Tx1_Idx++]);
}
else
{
I2C_TransmitPEC(I2C1, ENABLE);
I2C_ITConfig(I2C1, I2C_IT_BUF, DISABLE);
}
break;
case I2C_EVENT_MASTER_BYTE_TRANSMITTED: /* With BTF EV8-2 */
I2C_ITConfig(I2C1, I2C_IT_BUF, ENABLE);
/* I2C1 Re-START Condition */
I2C_GenerateSTART(I2C1, ENABLE);
break;
/* Master Receiver -------------------------------------------------------*/
case I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED:
if(Tx2BufferSize == 1)
{
/* Disable I2C1 acknowledgement */
I2C_AcknowledgeConfig(I2C1, DISABLE);
/* Send I2C1 STOP Condition */
I2C_GenerateSTOP(I2C1, ENABLE);
}
break;
/* Test on I2C1 EV7 and clear it */
case I2C_EVENT_MASTER_BYTE_RECEIVED:
/* Store I2C1 received data */
I2C1_Buffer_Rx[Rx1_Idx++] = I2C_ReceiveData (I2C1);
/* Disable ACK and send I2C1 STOP condition before receiving the last data */
if(Rx1_Idx == (Tx2BufferSize - 1))
{
/* Disable I2C1 acknowledgement */
I2C_AcknowledgeConfig(I2C1, DISABLE);
/* Send I2C1 STOP Condition */
I2C_GenerateSTOP(I2C1, ENABLE);
}
break;
default:
break;
}
}
#endif
/**
* @brief This function handles I2C2 Event interrupt request.
* @param None
* @retval None
*/
void I2C2_EV_IRQHandler(void)
{
printf("\n\rI2C2_EV_IRQ");
switch (I2C_GetLastEvent(I2C2))
{
/* Slave Transmitter ---------------------------------------------------*/
case I2C_EVENT_SLAVE_TRANSMITTER_ADDRESS_MATCHED: /* EV1 */
/* Transmit I2C2 data */
I2C_SendData(I2C2, I2C2_Buffer_Tx[Tx2_Idx++]);
printf(" EV1");
break;
case I2C_EVENT_SLAVE_BYTE_TRANSMITTED: /* EV3 */
/* Transmit I2C2 data */
I2C_SendData(I2C2, I2C2_Buffer_Tx[Tx2_Idx++]);
printf(" EV3");
break;
/* Slave Receiver ------------------------------------------------------*/
case I2C_EVENT_SLAVE_RECEIVER_ADDRESS_MATCHED: /* EV1 */
printf(" EV1a");
break;
case I2C_EVENT_SLAVE_BYTE_RECEIVED: /* EV2 */
/* Store I2C2 received data */
I2C2_Buffer_Rx[Rx2_Idx++] = I2C_ReceiveData(I2C2);
if(Rx2_Idx == 4)
{
I2C_TransmitPEC(I2C2, ENABLE);
//Direction = Receiver;
}
printf(" EV2");
break;
case I2C_EVENT_SLAVE_STOP_DETECTED: /* EV4 */
/* Clear I2C2 STOPF flag: read of I2C_SR1 followed by a write on I2C_CR1 */
(void)(I2C_GetITStatus(I2C2, I2C_IT_STOPF));
I2C_Cmd(I2C2, ENABLE);
Tx2_Idx = 0;
printf(" EV4");
break;
default:
printf(" [default]");
break;
}
}
/**
* @brief This function handles I2C2 Error interrupt request.
* @param None
* @retval None
*/
void I2C2_ER_IRQHandler(void)
{
printf("\n\rI2C2_ER_IRQ");
/* Check on I2C2 AF flag and clear it */
if (I2C_GetITStatus(I2C2, I2C_IT_AF))
{
I2C_ClearITPendingBit(I2C2, I2C_IT_AF);
}
}
/******************************************************************************/
/* STM32F10x Peripherals Interrupt Handlers */
/* Add here the Interrupt Handler for the used peripheral(s) (PPP), for the */
/* available peripheral interrupt handler's name please refer to the startup */
/* file (startup_stm32f10x_xx.s). */
/******************************************************************************/
/*******************************************************************************
* Function Name : PPP_IRQHandler
* Description : This function handles PPP interrupt request.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
/*void PPP_IRQHandler(void)
{
}*/
/******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -