协议不多解释,直接上正题。
1、配置GPIO4为中断输入,GPIO5为输出。
2、中断接收代码:
#define RECVSIZE 50
#define SET_GPIO5_HIGH GPIO_SetPins(GPIO_PIN_5);
#define SET_GPIO5_LOW GPIO_ResetPins(GPIO_PIN_5);
unsigned char receivedata[RECVSIZE]={0},datatemp, icount,recvflag=0,EndPosition=0;
void uart_init(void) //配置GPIO4为中断输入
{
WriteMem(REG_GPIO_CFG, ReadMem(REG_GPIO_CFG)|GPIO_PIN_4|GPIO_PIN_5);
hal_set_gpio_output_outoftimer(GPIO_PIN_4, 0);
hal_get_gpio_input_outoftimer(GPIO_PIN_4);
gpio->irq.mode |= (GPIO_PIN_4);
gpio->irq.polarity |= (GPIO_PIN_4);
gpio->irq.enable |= (GPIO_PIN_4);
NVIC_SetPriority(GPIO_IRQn, 4);
NVIC_EnableIRQ(GPIO_IRQn);
WriteMem(REG_GPIO_OEB, 0x00000000);
WriteMem(REG_GPIO_OUT, ReadMem(REG_GPIO_OUT) | GPIO_PIN_5);
SET_GPIO5_HIGH
}
//中断接收
void __a