simulink代码生成(四)——SCI发送模块(串口通信)

2023-12-25 21:40:41

C2000中的SCI模块分为两种,一种是接收模块,一种是发送模块;

1 发送模块

发送模块如下图所示:

SCI传输块使用指定的SCI硬件模块传输标量或矢量数据。采样率和数据类型是与输入端口一致;
注意:一个模型只能包含一个SCI接收块。

C28x处理器一共有三个SCI模块——A、B和C。我们可以通过在Hardware Implementation?>?Target hardware resources.来配置SCI模块。

1.1 发送选项卡中参数的定义

(1)SCI module? 选择串口模块

(2)Additional packge header ,数据包开头字母,

位于发送的数据包开头的数据,它不是正在传输的数据的一部分,并指示数据的开始。这个默认设置即可;

(3)Additional package terminator ,数据包结尾字母,与开头同理;

(4)Enable transmit FIFO interrupt ,是否是能FIFO终端

1.2 如何配置Hardware Implementation?>?Target hardware resources

打开设置

由于我的硬件是SCIB所以选择B,GPIO18 = SCIBTX? ? ?GPIO19 = SCIBRX ,下面影号部分就不需要设置S和E了,不增加校验位简单执行。

然后设置SCIB的波特率什么的,主要设置这两个地方;

搭建模型如下图所示:

设置一个0-7累加的值;可以看到串口助手反馈的值符合设计;

1.3 发送的数据是多少位的数据?

help文件中显示:采样率和数据类型是与输入端口一致;

从这里比较难看出串口输出的数据类型是什么样的,进行实验验证给一个uint16的转换后,通信是否正常;

串口实验结果为:C8为16进制数,对应十进制数为200,显示正常,且数据类型是 00 C8,是无符号16位数据类型;

进行实验验证给一个uint32的转换后,通信是否正常;

串口实验结果为:C8为16进制数,对应十进制数为200,显示正常,且数据类型是 00 00 00 C8,是无符号32位数据类型;

串口实验结果为:0X08C8为16进制数,对应十进制数为2248,显示正常,是无符号16位数据类型;

串口实验结果为:0x3F C0 00 00为16进制数,对应十进制浮点数位 1.5 ,显示正常,是浮点型数值的16进制表现形式;

在线进制转换-IEE754浮点数16进制转换(16进制与浮点相互转换的在线计算工具)

文章来源:https://blog.csdn.net/sy243772901/article/details/135201700
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。