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. 展开
void interrupt pic()
{
if(RCIF&&RCIE)
{
RCIF = 0;
case 0x31: TXREG = tmp;while(!TRMT);
}
tmp是18b20读取的温度。
上位机接收的数据是0. 展开
2个回答
展开全部
你可以先确认以下,tmp的值是不是0,有可能18b20的测试程序有问题,或者就没有成功读出18b20的温度值。
更多追问追答
追问
那应该是没有问题的,因为串口发送程序不放在中断函数中是可以正常发送温度值的,
追答
你再申请个变量,tmp2 ,先tmp2 = tmp ,然后TXREG = tmp2 ,试试再一个就是 tmp2 = 0xcc(随便赋值)然后再TXREG = tmp2。你把这两个都试试对比一下啊,看看问题还可能处在哪里。
还有,会不会调用终端服务程序时,时候影响了其他函数。
意法半导体(中国)投资有限公司
2020-01-15 广告
2020-01-15 广告
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询