MBD开发 STM32 UASRT

这篇具有很好参考价值的文章主要介绍了MBD开发 STM32 UASRT。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

轮询

ptintf

中断方式

DMA方式


轮询

串口要加入这两个文件

MBD开发 STM32 UASRT,stm32,嵌入式硬件,单片机MBD开发 STM32 UASRT,stm32,嵌入式硬件,单片机

MBD开发 STM32 UASRT,stm32,嵌入式硬件,单片机

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

ptintf

MBD开发 STM32 UASRT,stm32,嵌入式硬件,单片机

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配置好中断

MBD开发 STM32 UASRT,stm32,嵌入式硬件,单片机

MBD开发 STM32 UASRT,stm32,嵌入式硬件,单片机MBD开发 STM32 UASRT,stm32,嵌入式硬件,单片机

DMA方式

 MBD开发 STM32 UASRT,stm32,嵌入式硬件,单片机

 MBD开发 STM32 UASRT,stm32,嵌入式硬件,单片机

 文章来源地址https://www.toymoban.com/news/detail-526522.html

 

到了这里,关于MBD开发 STM32 UASRT的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【STM32嵌入式系统设计与开发】——7有源蜂鸣器应用

    STM32资料包: 百度网盘下载链接:链接:https://pan.baidu.com/s/1mWx9Asaipk-2z9HY17wYXQ?pwd=8888 提取码:8888 观察电路图,核心板PD14连接底板中的P2外接排针,将正负极接上直流电压即可持续发声,频率固定。LED的PA0连接底板的D1灯。 步骤1:复制工程模板“1_Template”重命名为“4_Active

    2024年03月21日
    浏览(73)
  • 嵌入式开发--STM32G4系列片上FLASH的读写

    这个玩意吧,说起来很简单,就是几行代码的事,但楞是折腾了我大半天时间才搞定。原因后面说,先看代码吧: 读操作很简单,以32位方式读取的时候是这样的: 需要注意的是,当以32位方式读取时,地址需要是4的整数倍,即32位。 8位或16位方式类似操作即可 需要注意的

    2024年01月18日
    浏览(74)
  • STM32F4+FreeRTOS+LVGL实现嵌入式快速开发(缝合怪)

    极速进行项目开发,只需要懂一款芯片架构+一个操作系统+一个GUI。各种部件程序全靠抄 ,成为究极缝合怪。本文用stm32f407+FreeRTOS+lvgl演示一些demo。 原文链接:STM32F4+FreeRTOS+LVGL实现快速开发(缝合怪) lvgl官方的音乐播放器demo: 百问网的2048小游戏: STM32F407这款芯片就不多介绍

    2024年02月08日
    浏览(65)
  • 【嵌入式开发工具】STM32+Keil实现软件工程搭建与开发调试

    本篇文章介绍了使用Keil来对STM32F103C8芯片进行初始工程搭建,以及开发与工程调试的完整过程,帮助读者能够在实战中体会到Keil这个开发环境的使用方法,了解一个嵌入式工程从无到有的过程,并且具备快速搭建一个全新芯片对应最小软件工程的基本能力思路。文章首先介绍

    2024年02月05日
    浏览(66)
  • 嵌入式开发--STM32用DMA+IDLE中断方式串口接收不定长数据

    之前讲过用 利用IDLE空闲中断来接收不定长数据 ,但是没有用到DMA,其实用DMA会更加的高效,MCU也可以腾出更多的性能去处理应该做的事情。 IDLE顾名思义,就是空闲的意思,即当监测到串口空闲超过1个串口的数据帧时,会使状态寄存器(SR或ISR)的IDLE位置位,如果此时控制

    2024年04月17日
    浏览(64)
  • 嵌入式开发的学习与未来展望:借助STM32 HAL库开创创新之路

      引言: 嵌入式开发作为计算机科学领域的重要分支,为我们的日常生活和产业发展提供了无限的可能。STMicroelectronics的STM32系列芯片以其出色的性能和广泛的应用领域而备受关注。而STM32 HAL库作为嵌入式开发的高级库,为学习者提供了更高效、更简单的开发方式。本文将结

    2024年02月12日
    浏览(50)
  • 从零开始教你使用Clion优雅开发STM32(三)Clion嵌入式开发必备插件

    (一)软件安装与环境配置 (二)移植工程文件到其他芯片 (三)Clion嵌入式开发必备插件 文章目录 前言 1)Chinese(simplified) 2)CodeGlance Pro 3)File Watchers  4)Key Promoter X 5)CodeGlance Pro 6)Monokai Pro Theme 7)Rainbow Brackets Lite 8)Serial Port  Monitor 总结 前段时间,稚晖君用 Cl

    2024年02月06日
    浏览(62)
  • 蓝桥杯嵌入式STM32 G431 hal库开发速成——ADC与DAC

    模数转换器(ADC):它将模拟信号转换为单片机能够处理的数字信号。在很多应用中,比如温度传感器、压力传感器等,信号最初都是模拟形式的。ADC 读取这些模拟信号,然后将它们转换为数字形式,以便单片机可以读取和处理。 数模转换器(DAC):它执行相反的操作,将

    2024年02月01日
    浏览(63)
  • 嵌入式linux物联网毕业设计项目智能语音识别基于stm32mp157开发板

    stm32mp157开发板FS-MP1A是华清远见自主研发的一款高品质、高性价比的Linux+单片机二合一的嵌入式教学级开发板。开发板搭载ST的STM32MP157高性能微处理器,集成2个Cortex-A7核和1个Cortex-M4 核,A7核上可以跑Linux操作系统,M4核上可以跑FreeRTOS、RT-Thread等实时操作系统。开发板搭配仿真

    2024年02月02日
    浏览(82)
  • 【Mac+CLion+STM32+ST-Link】Mac(apple sillicon)上使用STM32CubeMX和CLion搭建嵌入式开发环境

    Clion 官网安装或者brew安装,我用的是2023.2版本。 stlink server https://www.st.com/en/development-tools/st-link-server.html 不安装的话检测不到stlink。 STM32CubeMX https://www.st.com/en/development-tools/stm32cubeide.html#overviewsecondary=st-get-software 用来快速搭建一个工程。 Arm-toolchain 用来编译和debug的组件。

    2024年02月08日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包