The question about uart communication

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

The question about uart communication

2,144件の閲覧回数
260068845
Contributor III

Hello, engineers,

   I encountered some problems when using the MPC5744P uart communication routine. In the 'uart_echo_mpc574xP', I can receive a U8 element in the serial port 1 interrupt and output it to the serial port, but I want to transfer an array and adjust the receiving size to 10. The other did not make adjustments, but the program did not receive 10 elements and returned as I expected. May I ask where is the problem? Thank you!!图片2.png

0 件の賞賛
返信
3 返答(返信)

1,930件の閲覧回数
constantinrazva
NXP Employee
NXP Employee

Hello 260068845@qq.com‌,

Can you attach your model ?

Kind regards,

Razvan.

0 件の賞賛
返信

1,928件の閲覧回数
260068845
Contributor III

Of course, the file is in the attachment.

0 件の賞賛
返信

1,928件の閲覧回数
constantinrazva
NXP Employee
NXP Employee

Hello 260068845@qq.com‌,

So the way the UART transmit/receive blocks work is the following:

- Receive - here you have an input to tell it what size you are expecting to receive (number of bytes)

- Transmit - the transfer size will be automatically set to the dimension of the input (e.g.: if you are using a data store memory block with size 10, you'll start sending 10 bytes)

In your model, by sending directly the output of UART_Receive to the input of UART_Transmit, Simulink sees that as having size 1, so you end up with a 1 byte UART transmit. To fix this, you can put the data in a data store memory (as you can see in the model attached by me). This way, Simulink will see this as a 10B variable, so the transfer size will be set accordingly. 

Kind regards,

Razvan.

0 件の賞賛
返信