MBD开发 STM32 UASRT

news2024/10/6 5:56:26

目录

轮询

ptintf

中断方式

DMA方式


轮询

串口要加入这两个文件

bug在于接到10个后会一直发送 

ptintf

function buffPtr = convert(buff)

if coder.target('Sfun')%固定句式
    %Executing in MATLAB, Buff is null
    buffPtr = uint32(0);
else
    coder.cinclude('getBuffPtr.h');%加入头文件  c include
    coder.cinclude('stdio.h');
    
    string = char(zeros(1,20));%一个1*20的矩阵,二维数组  初始化
    stringSize = uint16(size(string,2));%取上一个变量的第二位即列向量,就是20,第一位是1
    
    % 相当于连写 %s\r\n加字符串结束符,后面按照%s格式转换
    stringFormat = char(['%s',13,10,0]);%13 10 0  对应\r\n\0  
    
    %coder.ceval(cfun_name,cfun_arguments) 使用参数 cfun_arguments 执行 cfun_name。
    %cfun_arguments 是按照 cfun_name 要求的顺序排列的逗号分隔的输入参数列表。
    %snprintf(),函数原型为int snprintf(char *str, size_t size, const char *format, ...)。
    %将可变参数 “…” 按照format的格式格式化为字符串,然后再将其拷贝至str中。并给其后添加一个字符串结束符('\0')
    %把buff按照coder.rref(stringFormat)格式发送给string,最多stringSize个
    %相当于把buff按照%s格式转换,\r\n保留,结束符为自动自带的,不进行发送
    % == printf("%s\r\n",buff)
    coder.ceval('snprintf',coder.wref(string),stringSize,coder.rref(stringFormat),buff);  % c eval   重新运算求出参数的内容
    
    %调用c语言的getBuffPtr(),找到首地址
    buffPtr = coder.ceval('getBuffPtr',coder.rref(string));
end
end
源码
void untitled_step(void)
{
  char_T string_0[20];
  static const char_T stringFormat[5] = { '%', 's', '\x0d', '\x0a', '\x00' };

  uint8_T tmp[31];
  int32_T i;

  /* MATLAB Function: '<Root>/MATLAB Function' */
  for (i = 0; i < 31; i++) {
    tmp[i] = rtConstB.StringtoASCII[i];
  }

  snprintf(string_0, 20, stringFormat, tmp);
  rtDW.buffPtr = getBuffPtr(string_0);

  /* End of MATLAB Function: '<Root>/MATLAB Function' */
  /* S-Function (USART_Send): '<Root>/USART_Send' */
  {
    if (rtConstB.Add != 0) {
      /* Copy data to send. */
      TX_CopyData(&USART1_TxConf, (uint8_t*)rtDW.buffPtr, (uint16_t)rtConstB.Add);
    }

    if (USART1_TxConf.nb2Send) {
      rtDW.USART_Send = 0;
      USART1_TX_SendData(&USART1_TxConf);
    }

    if (USART1_TxConf.txStatus != SERIAL_TX_ON) {
      rtDW.USART_Send = USART1_TxConf.nbSent;
    }

    USART1_TxConf.txStatus = SERIAL_TX_OFF;
  }
}

中断方式

先在cubemx配置好中断

DMA方式

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/718304.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Apikit 自学日记:智能 Mock 规则

功能入口&#xff1a;API管理应用 / 公共资源菜单 / 智能 Mock 设置 二级菜单在编写API文档返回结果时&#xff0c;若参数字段和类型匹配智能Mock规则&#xff0c;系统则会自动填入对应的Mock值。该功能提供无感的快速mock值配置&#xff0c;减轻mock规则配置的工作负担。 智能…

Dubbo学习记录

Dubbo学习记录 一、Dubbo架构二、Provider启动Dubbo1.实现类的Service注解2.Dubbo的配置信息3.引入web.xml&#xff0c;加载Spring核心配置文件&#xff0c;才可以扫描到Dubbo的配置信息 二、Consumer启动Dubbo1.Autowired改为Reference2.qos介绍&#xff1a;Dubbo远程监控和控…

LeetCode 打卡day54-55 动态规划之编辑距离问题

一个人的朝圣 — LeetCode打卡第54-55天 知识总结 Leetcode 392. 判断子序列题目说明代码说明 Leetcode 115. 不同的子序列题目说明代码说明 Leetcode 583. 两个字符串的删除操作题目说明代码说明 Leetcode 72. 编辑距离题目说明代码说明 知识总结 今天学习动态规划里面的编辑…

《零基础学PIC单片机》目录

《零基础学PIC单片机》目录 1.《零基础学PIC单片机》&#xff0c;作者&#xff1a;赵化启 1.1芯片架构和指令 芯片架构和指令需要较多时间消化。 PIC单片机系统结构&#xff0c;讲解各模块的结构和功能&#xff1b;PIC汇编指令 1.2具有参考价值的内容 第3章&#xff1a;电…

批发零售行业应该如何选择进销存软件?

一、什么是进销存软件 进&#xff1a;需要将产品采购入库&#xff0c;自动生成采购明细台账同时关联财务生成付款账单&#xff1b; 销&#xff1a;是指对客户的销售订单记录&#xff0c;汇总生成产品销售明细及回款计划&#xff1b; 存&#xff1a;库存的日常盘点与统计&…

看一眼Mysql查询语句

目录 &#x1f6fb; 查询数据 &#x1f6fb;基本查询语句 &#x1f6fb;单表查询 &#x1f695;查询所有字段 &#x1f695;查询指定字段 &#x1f695;查询指定记录 &#x1f695;带in关键字的查询 &#x1f695;带between and的范围查询 &#x1f695;带like的字符匹…

一文带你了解socket网络编程以及详解过程和原理

创作不易&#xff0c;期望亲友们给个免费的就行 文章目录 一、什么是socket二、TCP/IP三、socket原理四、代码说明五、API函数 一、什么是socket Socket&#xff08;套接字&#xff09;是计算机网络编程中的一种抽象概念&#xff0c;它提供了在网络上进行通信的接口。通过使用…

RankNet(pairwise)

原论文&#xff1a;From ranknet to lambdarank to lambdamart: An overview 构造样本&损失函数 首先对同一个query下返回的连接&#xff0c;进行配对构造样本<Ui, Uj>代表了一对样本。用Pij代表样本的得分&#xff0c;si,sj代表了模型对样本的打分。 有了样本模型…

处理 Windows Server 中 CVE-2016-2183(SSL/TLS) 漏洞的方法

一、漏洞说明 Windows server 2008或2012远程桌面服务SSL加密默认是开启的&#xff0c;且有默认的CA证书。由于SSL/ TLS自身存在漏洞缺陷&#xff0c;当开启远程桌面服务&#xff0c;使用漏洞扫描工具扫描&#xff0c;发现存在SSL/TSL漏洞。 例如如下漏洞&#xff1a; 二、…

(02)Cartographer源码无死角解析-(75) 2D后端优化→整体复盘,理解后端优化核心思想

讲解关于slam一系列文章汇总链接:史上最全slam从零开始&#xff0c;针对于本栏目讲解(02)Cartographer源码无死角解析-链接如下: (02)Cartographer源码无死角解析- (00)目录_最新无死角讲解&#xff1a;https://blog.csdn.net/weixin_43013761/article/details/127350885 文…

跨境干货|Etsy安全入驻开店攻略

2023了&#xff0c;跨境电商现在上车还来得及吗&#xff1f;当然&#xff01;Etsy是一个低成本低竞争高回报的平台&#xff0c;相较于其他电商平台&#xff0c;他的佣金非常低&#xff0c;利润率更高&#xff0c;非常合适跨境小白入局。 但由于目前Etsy关闭了中国大陆卖家的注…

设计模式- 一、设计原则-1

一、设计原则 当涉及到软件设计和开发原则时&#xff0c;有一些常见的原则和准则可以帮助我们编写高质量、可维护和可扩展的代码。以下是其中一些重要的原则和准则&#xff1a; SOLID原则&#xff1a; 单一职责原则&#xff08;Single Responsibility Principle&#xff0c;SRP…

SpringMVC快速学习

一、SSM框架优化的方向 目录结构&#xff1a; 二、前期文件配置 pom.xml <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 ht…

USB转串口电路—电源与防倒灌设计

USB转串口芯片和串口负载&#xff08;MCU、CPU、其他串口外设等&#xff09;的供电方式可以分为2个大类&#xff1a;统一供电和独立供电。 一、供电说明 统一供电是指USB芯片和串口负载使用同一电源&#xff0c;上下电同步&#xff0c;此时不会存在彼此之间电流倒灌的问题。 …

ORA-01122 ORA-01200故障处理---惜分飞

由于某种原因客户的数据库启动报ORA-01122 ORA-01200错误 让客户把system01.dbf文件发给我进行分析,发现system01.dbf文件大于32G(在8k的blocksize库中,默认情况system01.dbf文件不会超过32G),这个明显异常 检测坏块情况发现4096000之后的block全部为全0块 通过bbed分析文…

数学建模常用模型(二):插值与拟合

数学建模常用模型&#xff08;二&#xff09;&#xff1a;插值与拟合 在数学建模中&#xff0c;插值和拟合是常用的数据分析技术&#xff0c;用于从给定的离散数据中推断出连续函数或曲线的近似形式。 插值是通过已知数据点之间的插值多项式来估计未知数据点的值。插值方法的目…

SQL之收集SQL Server线程等待信息

要知道线程等待时间是制约SQL Server效率的重要原因&#xff0c;这一个随笔中将学习怎样收集SQL Server中的线程等待时间&#xff0c;类型等信息&#xff0c;这些信息是进行数据库优化的依据。 sys.dm_os_wait_stats 这是一个系统视图&#xff0c;里面存储线程所遇到的所有的等…

smart Spring:自定义注解、拦截器的使用(更新中...)

文章目录 〇、使用自定义注解的好处和工作原理一、如何使用自定义注解1.自定义一个注解2.在类、属性、方法上进行使用3.元注解 二、使用拦截器的好处和工作原理三、如何使用拦截器参考 本博客源码&#xff1a; 〇、使用自定义注解的好处和工作原理 自定义注解是Java语言提供的…

消息中间件应用场景

提高系统性能首先考虑的是数据库的优化&#xff0c;但是数据库因为历史原因&#xff0c;横向扩展是一件非常复杂的工程&#xff0c;所有我们一般会尽量把流量都挡在数据库之前。 不管是无限的横向扩展服务器&#xff0c;还是纵向阻隔到达数据库的流量&#xff0c;都是这个思路。…

JSP网上手机商城系统 用eclipse定制开发mysql数据库BS模式java编程jdbc

一、源码特点 JSP 网上手机商城系统是一套完善的web设计系统&#xff0c;对理解JSP java SERLVET mvc编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,eclipse开发&#xff0c;数据库为Mysql5.0&a…