请教原子哥,我买了一个TTL转485的转接板,接在mini板上,用串口2测试,在串口中断接收里将接收的数据返回,现在遇到的问题是,通过485可以发送一个字符返回一个字符比如0xAA,但是当发送8个字符时就不能返回,(我不通过485直接用串口测试发10个字符都没问题全部有返回)下面是我的串口接收代码,主函数是个死循环
串口发送
void USART2_PutChar(u8 ch )
{
RS485EN=0;
USART2->DR = (u8) ch;
// while((USART2->SR&0X40)==0){};//Ñ-»··¢Ëí,Ö±μ½·¢Ëííê±Ï
while(USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);
RS485EN=1;
}
串口接收
void USART2_IRQHandler(void)
{
u8 i;
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
{
RxArr[RxLen++]=USART_ReceiveData(USART2);
// USART2_PutChar(USART_ReceiveData(USART2) );
}
if(RxLen==RxArr[5]+6)
{
for(i=0;i<12;i++)
USART2_PutChar(RxArr[i]);
RxLen=0;
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
delay
2,没有好办法,自己一点点测试,比如延时100,90,80,70....看哪个时间下正常,到哪个不正常,零界点就是你要的
一周热门 更多>