重新定义了的啊
int fputc (int ch,FILE *f)
{
//??ch????USART
USART_SendData (USART1 ,(unsigned char )ch);
//????·????ê±?
while(USART_GetFlagStatus (USART1 ,USART_FLAG_TC )==RESET ); 在这里查询了发送是否完成
//·???ch
return(ch);
}
我的中断的确是打开了。
void USART1_IRQHandler(void)
{
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)//
{
/* Clear the USART1 Receive interrupt */
USART_ClearITPendingBit(USART1, USART_IT_RXNE); //??????????
// USART_SendData(USART1 ,USART_ReceiveData(USART1 ));//??????????????·???????
}
if(USART_GetITStatus(USART1, USART_IT_TC) != RESET) //????·????ê????????????
{ //KailiaoCheGuaJie;
USART_ClearITPendingBit (USART1,USART_IT_TC); //????·????ê??????±ê??
}
}
但是以前都可以,我加了
printf("0x%X\n\n", crc_chk(senddata,6) ); 我是想16进制输出,结果,就出问题了,我发现了,把程序改过来了,就只能打印一个直接了,
我换了个串口工具,还是一样的,我觉得是单片机里面出了问题了。但是不知道怎么 解决
|