初级会员

- 积分
- 72
- 金钱
- 72
- 注册时间
- 2016-6-14
- 在线时间
- 19 小时
|
void UART5_printf (char *fmt, ...)
{
char buffer[CMD_BUFFER_LEN+1]; // CMD_BUFFER_LEN
u8 i = 0;
va_list arg_ptr;
va_start(arg_ptr, fmt);
vsnprintf(buffer, CMD_BUFFER_LEN+1, fmt, arg_ptr);
USART_ClearFlag(UART5,USART_FLAG_TC); //DÂÔöò»DD£¬Çå3y¼Ä′æÆ÷TC±êÖ¾
while ((i < CMD_BUFFER_LEN) && buffer[i])
{
USART_SendData(UART5, (u8) buffer[i++]);
while (USART_GetFlagStatus(UART5, USART_FLAG_TC) == RESET);
}
va_end(arg_ptr);
}
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif
PUTCHAR_PROTOTYPE
{
USART_ClearFlag(UART4,USART_FLAG_TC);
USART_SendData(UART4, (u8) ch);
while (USART_GetFlagStatus(UART4, USART_FLAG_TC) == RESET);
return ch;
}
我这样设置好串口后,收发数据都正常,为什么UART4不能自己打断自己中断。。。。。。就是我正在用UART4完成一件事情,然后再通过UART4打断一下,完成宁外一件事情,,,实际测得不可以。。。。这是为什么?非要等第一件事情完成后,才继续第二件事情,打断不了中断,这是为什么???????????高手解答一下。。。。
|
|