TI论坛
直播中

李婧

7年用户 175经验值
私信 关注
[问答]

我用示波器测得默认值是低电平,单UART协议要求空闲状态是高电平,请问怎么设置呢?

mcbsp 配置成UART,DX默认输出能配置吗?我用示波器测得默认值是低电平,单UART协议要求空闲状态是高电平,请问怎么设置呢?谢谢

回帖(2)

李波

2018-8-1 06:36:37
这要看管脚是内部上拉还是下拉的,我看McBSP0的TX,RX是上拉的,估计默认是高电平,而MCBSP1是下拉的,那么就是低电平。
McBSP用做UART,并身是借用软件来实现的,并非硬件的UART,不会考虑UART的特性。
另外如果不满足,就在外部加强上拉电阻。
                                                                         http://processors.wiki.ti.com/index.php/Main_Page
Think Over Before Asking.
http://www.catb.org/~esr/faqs/smart-questions.html#goal
举报

李婧

2018-8-1 06:50:46
引用: lifei639156 发表于 2018-8-1 06:36
这要看管脚是内部上拉还是下拉的,我看McBSP0的TX,RX是上拉的,估计默认是高电平,而MCBSP1是下拉的,那么就是低电平。
McBSP用做UART,并身是借用软件来实现的,并非硬件的UART,不会考虑UART的特性。
另外如果不满足,就在外部加强上拉电阻。

我不用edma直接查询发送和接收也是可以的吧?发送的时候查询SPCR1的XRDY位,接收的时候查询RRDY是否为1.这种方式可以吗?
//发送
Uart_transmit_data(0x0000); /起始位
Uart_transmit_data(0xffff);      //0
Uart_transmit_data(0xffff);      //1
Uart_transmit_data(0x0000);  //2
Uart_transmit_data(0xffff);       //3
Uart_transmit_data(0x0000);  //4
Uart_transmit_data(0xffff);        //5
Uart_transmit_data(0x0000);   //6
Uart_transmit_data(0xffff);        //7


Uart_transmit_data(0xff);     //停止位
Uart_transmit_data(0xff);     //停止位
Uint32 Uart_transmit_data(Uint32 dataout)
[
Uint32 data = 0;
int a ,b;
a= 1;
while(data != 0x020000)
[
data = SPCR1;
data= data & 0x020000;
]
DXR1 = dataout;
]

//接收
while(1)
[
Uart_receive_data(&Spi_rData);
data_r =Spi_rData;
i++;
]
Uint32 Uart_receive_data(int *SPI_Rd_data)
[
while(data != 0x000002)//recevie ready
[
data = SPCR1;
data= data & 0x000002;
]
*SPI_Rd_data = DRR1;
]
举报

更多回帖

×
20
完善资料,
赚取积分