注册 登录
查看: 602|回复: 7

[K60] 求教K60清标志位的问题

[复制链接]
发表于 2014-9-4 21:34:36 | 显示全部楼层 |阅读模式
写了个串口的程序,进入接收中断后返回给PC数据,但是会一直给PC返回数据,应该是清标志位的问题,于是翻书看了半天没看到讲清标志位的地方,特来发帖提问,求教在哪里清楚标志位,清楚哪个寄存器的标志位呢,不胜感激
回复

使用道具 举报

发表于 2014-9-4 21:41:05 | 显示全部楼层
你开的是是发送中断还是接收中断啊?
回复 支持 反对

使用道具 举报

发表于 2014-9-4 21:42:00 | 显示全部楼层
接收中断,接收到数据后,需要读取所接收的数据,然后自动清中断标志位的
回复 支持 反对

使用道具 举报

发表于 2014-9-4 21:46:27 | 显示全部楼层
你接收到数据后,有没有读数据寄存器?
话说,山外哥提供的例程,不是有接收中断的吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-5 10:57:01 | 显示全部楼层
汤静云 发表于 2014-9-4 21:41
你开的是是发送中断还是接收中断啊?

是接收的中断   进入以后返回给电脑数据
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-5 11:18:34 | 显示全部楼层
虚竹 发表于 2014-9-4 21:46
你接收到数据后,有没有读数据寄存器?
话说,山外哥提供的例程,不是有接收中断的吗?

我是在中断里面调用了这个函数  uart_getchar(UART1,&ch);把接收的数据保存在ch里面。在这个函数内部是这样的{while (!(UART_S1_REG(UARTN[uratn]) & UART_S1_RDRF_MASK));  *ch =  UART_D_REG(UARTN[uratn]); } 我看了手册只是简单提了一下数据寄存器,根本没介绍额。例程有接收中断的,一开始好像我写错了导致了他一直进入中断给电脑发送数据,后来改了一下,进入中断后接收数据,然后给电脑发送数据,只有这两个函数,然后可以正常工作了没问题。但是有个学长跟我提了一下关于清标志位的事情,我查书没查到这个,百度也没找到有用的,虽然程序可以正常工作了但是还是想知道一下关于清标志位的事情,以免以后出错,所以过来发帖问问大家。嘿嘿  希望大神解答一下咯
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-5 11:20:29 | 显示全部楼层
汤静云 发表于 2014-9-4 21:42
接收中断,接收到数据后,需要读取所接收的数据,然后自动清中断标志位的

你的意思是我调用了接收数据这个函数 uart_getchar(UART1,&ch); 把数据保存在ch里面,标志位会自动清除不需要我管吗?
回复 支持 反对

使用道具 举报

发表于 2014-9-5 11:30:52 来自手机 | 显示全部楼层
六步上篮 发表于 2014-9-5 11:20
你的意思是我调用了接收数据这个函数 uart_getchar(UART1,&ch); 把数据保存在ch里面,标志位会自动清除不 ...

你直接参考我们的串口中断接收例程,是自动清的。
回复 支持 反对

使用道具 举报

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

本版积分规则

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