打印

MSP430F4152的USCI UART地址位多处理器通讯怎么做?

[复制链接]
717|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wuhany|  楼主 | 2018-10-20 11:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
spark周| | 2018-10-20 12:00 | 只看该作者

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
板凳
wuhany|  楼主 | 2018-10-20 12:02 | 只看该作者

我的代码为:
void init_uart0(void)
{
  P6SEL |= BIT5+BIT6;                             // P6.5,6 = USCI_A0 TXD/RXD
  
  UCA0CTL0 = 0x04;                    //0000 0100
  UCA0CTL1 |= UCSSEL_2;                     // SMCLK  2M

  UCA0BR0 = 0xD0;
  UCA0BR1 = 0x00;
  UCA0MCTL = 0x40;                               // Modulation UCBRSx = 1
  UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
  IE2 |= UCA0RXIE;                          // Enable USCI_A0 RX interrupt
  __enable_interrupt();                     //开全部中断
}

#pragma vector=USCIAB0RX_VECTOR
__interrupt void UART0_isr(void)
{
    unsigned char  new, add;

    if(UCA0STAT & UCADDR)
    {
        add = UCA0RXBUF;
    }
    else
    {
         new = UCA0RXBUF;
    }
}

但是,什么也收不到,是不是用的不对?

使用特权

评论回复
地板
zhaoxqi| | 2018-10-20 12:06 | 只看该作者
你可以使用地址搜寻的。

使用特权

评论回复
5
jiajs| | 2018-10-20 12:09 | 只看该作者
定义一个起始位,然后读取地址就行了。

使用特权

评论回复
6
wuhany|  楼主 | 2018-10-20 12:11 | 只看该作者

就要用“地址位多处理器通讯协议”,也就是9位的数据

使用特权

评论回复
7
jlyuan| | 2018-10-20 12:14 | 只看该作者
一个主处理器对应多个从处理器UART通讯,处理器与处理器之间的报文传输必须明确标注目标地址和源地址,以免不相干的处理器之间进行误导操作

使用特权

评论回复
8
wuhany|  楼主 | 2018-10-20 12:18 | 只看该作者

要用9位的方式进行通讯,因为主机是这么通讯的

使用特权

评论回复
9
wuhany|  楼主 | 2018-10-20 12:21 | 只看该作者
难道没人用4152的9位串口吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

879

主题

10435

帖子

4

粉丝