微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 求教:使用串口haluartwrite()时,IO输出被强制拉低

求教:使用串口haluartwrite()时,IO输出被强制拉低

时间:10-02 整理:3721RD 点击:

程序如下:

第一部分,在Zmain.c中对P0_6输出初始化

P0SEL&=~0x40;

P0DIR |=0x40;

P0_6=1;

 

第二部分

在应用程序中:

P0_6=1;

WaitUs(10000);

HalUARTWrite(0,&pkt->cmd.Data[1],10);

P0_6=0;

 

上图说明,1为P0_3写信号,2为P0_6(或P2_0)控制信号,

程序流程:P0_6置高电平,P0_3开始写数据,P0_3数据写完,P0_6置低电平。

协议栈:Z-stack home1.2.1

现在的问题:P03一写数据,P0_6就被拉低,串口用DMA和ISR都试过,都是这种情况。HalUARTWrite时如何不影响P0_6呢?请高手指教!谢谢

 

 

P0.6在原先协议栈里面用到Joystick的功能,有没有把这个功能屏蔽掉,保证只有你的程序在操作P0.6

谢谢,原因找到了,与i/o口复用没关系。haluartwrite函数返回的时候只是把数据发送到了串口缓冲buffer中,数据并没有真正从串口发送寄存器中全部发送出去。

正确的顺序是这样的,打开外围设备串口控制位,写串口,等数据全部从串口寄存器中发送完毕,再延时1ms(具体时间多少根据实际应用定),最后关闭外围设备串口控制位。
要对串口的底层工作机制有一定了解才行。

谢谢!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top