-
现在我的问题解决啦,连续发5次55就能中断接收两个字节的值。这是我修改后的程序
#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx(void)
{
//while(!(IFG1&UTXIFG0)); //TX or RX?
while((IFG1 & UTXIFG0)==0); //USART0接收缓存有数据吗,UTXIFG0发送中断标志,TX缓存空闲否?
//TXBUF0=RXBUF0; //读出接收到的数据
//IFG1|=~URXIFG0;
LastRcvData=RXBUF0; //输入缓存器转换成字符
TXBUF0=LastRcvData;
if(RcvIndex==0)
{
GLengthHigh=LastRcvData;
RcvIndex++;
}
else if(RcvIndex==1)
{
GLengthLow=LastRcvData;
PreLength=GLengthHigh;
PreLength
-
返回数据的格式是16位的,结果接收缓存存放的从接收移位寄存器最后的字符即低8位,如果用软件模拟UART时序是指用timerA和B吗?那之前写的用UART实现接收功能的程序是不是无法实现16位的数据接收了?
-
我用IAR看了一下超声波测距模块的返回值它只有低位的返回值,也就是近距离能测量准确,稍微远一点返回值就不停地变化。即使先将高位移位也不正确。还有版主说的用软件模拟UART的接收时序怎么弄可否具体说说。谢谢咯~
-
多了一个头文件#include "io430.h",现在好了,谢谢各位前辈的指点咯~
-
我在文件中找了一下有x44x.h头文件,可是就是运行不出来