pic16f877a单片机串口中断发送数据

pic16f877a单片机串口接收数据时进入中断,再发送数据,但是发送的是变量时怎么都变成了0.voidinterruptpic(){if(RCIF&&RCIE){RCI... pic16f877a单片机串口接收数据时进入中断,再发送数据,但是发送的是变量时怎么都变成了0.

void interrupt pic()
{
if(RCIF&&RCIE)
{
RCIF = 0;
case 0x31: TXREG = tmp;while(!TRMT);
}
tmp是18b20读取的温度。
上位机接收的数据是0.
展开
 我来答
surfwoo
2014-11-16 · 超过24用户采纳过TA的回答
知道答主
回答量:42
采纳率:0%
帮助的人:44.9万
展开全部
你可以先确认以下,tmp的值是不是0,有可能18b20的测试程序有问题,或者就没有成功读出18b20的温度值。
更多追问追答
追问
那应该是没有问题的,因为串口发送程序不放在中断函数中是可以正常发送温度值的,
追答
你再申请个变量,tmp2 ,先tmp2 = tmp ,然后TXREG  = tmp2 ,试试再一个就是 tmp2 = 0xcc(随便赋值)然后再TXREG  = tmp2。你把这两个都试试对比一下啊,看看问题还可能处在哪里。
还有,会不会调用终端服务程序时,时候影响了其他函数。
查晓筠0i5
2014-11-16 · TA获得超过2752个赞
知道大有可为答主
回答量:2.1万
采纳率:1%
帮助的人:4952万
展开全部

需要帮你写吗

更多追问追答
追问
你可以先告诉我怎么做吗,这是什么原因呢
追答
好 的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式