protues仿真用USART1串口通信一直都读不到数值,中断啥的斗争。观察寄存器提示在数据 那里 0x00000004) not within memory block (0x00000020 bytes). 这是啥情况呀,有大佬遇到过这样情况吗???
void UartIRQ (UART_T *_pUart)
{
//uint8_t p=0x10;
if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET) //判断接收标志寄存器状态是否置位
{
GPIO_PWM2_TOGGLE;
uint8_t ucTemp;
//GPIO_PWM2_TOGGLE;
ucTemp = USART_ReceiveData(USART1);
_pUart->pRxBuf[_pUart->usRxWrite] = ucTemp;
// RECIVER_DATE_BUFF[i++]=ucTemp; //将接受到的数据放到接收缓存区
if (++_pUart->usRxWrite >= _pUart->usRxBufSize) //当接受缓冲区的写指针数 超过 接收缓冲区的大小
{
_pUart->usRxWrite = 0; // 接收缓冲区写指针 置零
}
if (_pUart->usRxCount < _pUart->usRxBufSize) // 判断是否已经读取完 接收到的数据 当小于 _pUart->usRxBufSize 时 表示未读取完,
{
_pUart->usRxCount++; // 还未读取的新数据个数 USART_GetITStatus 程序走一遍+1
}
MODS_ReciveNew(ucTemp); //拿来做一帧响应应答,判断数据是否连续 是否为一帧数据
Usart_display(ucTemp);
// USART_SendData(USART1,ucTemp);
}
}
更多回帖