OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2796|回复: 0

串口中断

[复制链接]

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2016-6-14
在线时间
19 小时
发表于 2016-11-22 21:56:02 | 显示全部楼层 |阅读模式
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打断一下,完成宁外一件事情,,,实际测得不可以。。。。这是为什么?非要等第一件事情完成后,才继续第二件事情,打断不了中断,这是为什么???????????高手解答一下。。。。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-26 14:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表