The question about uart communication

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

The question about uart communication

1,194 Views
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 Kudos
3 Replies

980 Views
constantinrazva
NXP Employee
NXP Employee

Hello 260068845@qq.com‌,

Can you attach your model ?

Kind regards,

Razvan.

0 Kudos

979 Views
260068845
Contributor III

Of course, the file is in the attachment.

0 Kudos

979 Views
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 Kudos