初级会员

- 积分
- 50
- 金钱
- 50
- 注册时间
- 2014-9-18
- 在线时间
- 1 小时
|
5金钱
串口1中断接收到一组数据赋给串口2的发送缓冲区,串口2发送数据,接收发送数组大小均为20字节,发送过程中最后一位丢失。接收数组满后从头接收,发送数组发送到最后一位后从头发送。
if(RxIndex_WIFI > 0)//接收计数器大于0
{
for(;TxIndex_BLE <RxIndex_WIFI;TxIndex_BLE++)
{
while((USART1->SR & 0x0080) == RESET)
;
USART_SendData(USART1, TxBuffer_BLE[TxIndex_BLE]);
}
while(TxIndex_BLE >= 19 && rx_flag2 == 1)//发送完最后一位后发送计数器清零
{
TxIndex_BLE = 0;
rx_flag2 = 0;
}
}
以下是发送缓冲区数组数据:
以下是接收到的数组数据:
第20个数据“13”丢失。
还有串口中断优先级如何设置?怎样设置更合理一些。
//????????NVIC
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; //?è???®??1????
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //?????????? 0
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //×?????????0
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //????
NVIC_Init(&NVIC_InitStructure);
//????????NVIC
NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn; //?è???®??1????
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; //?????????? 1
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //×?????????1
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //????
NVIC_Init(&NVIC_InitStructure);
以上问题求大神指教,谢谢。。。。。。
|
|