我是靠谱客的博主 精明菠萝,最近开发中收集的这篇文章主要介绍STM32使用simulink编程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

第一部分

  • 首先你要下载STM官方的32的simulink包 STM32-MAT网址链接
  • 然后解压出来进行安装,安装地址自行拟定,打开安装目录,你会看见startuop.bat文件,双击运行后会自动打开matlab目录下文件
  • 点击设置路径,然后把你安装的那个文件夹添加进去,然后点击保存在这里插入图片描述
    在这里插入图片描述
  • 第一部分完成。

第二部分

  • 打开你安装的cubemx,选择你的芯片型号,配置你需要的外设,我这里只配置了一个时钟,下载和LED
  • 然后配置你工程的名字,选择工程路径,选择你的MDK,然后在Code Generator勾选生成单独的.c和.h
  • 最后再File里选择save project,你将会在路径文件夹里看到一个蓝色的ioc文件,这就证明成功了
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

第三部分

  • 我建议你创建的simulink工程文件和ioc文件只有一文件夹之隔,或者他俩直接在一起。
  • 如果你是直接打开simulink创建的工程,那么matlab的外边的目录很有可能不是你工程的目录,记得把这里换成你工程的目录
    在这里插入图片描述
  • 剩下的参考大神的博客手把手教你使用simulink配合STM32CUBEMX
  • 如果灯不闪烁,去主函数看看,matlab的代码是不是已经在主函数里了
  • 你生成的时候还有可能出现Block diagram error,这个错误可以把固定步长那改为0.001试试

BUG

  • if ((217056256 == shunfeng_B.CAN_Read_Data_o2.ID) && (4U == shunfeng_B.CAN_Read_Data_o2.Extended) )
  • 问题就是过大的CAN ID,会导致接收数据不成功,经过keil的Debug排查发现是4U这里出问题了,生成的代码为1,需要自己手动改变
  • 串口接收也有问题,多次发送后会出现bug,需要找到他真实运算的数组,我这里是test_3_B.USART_Receive_o3,然后将串口的callback,HAL_UART_RxCpltCallback,内容改成
  • 回调函数在test_3_USART.c文件里,matlab文件夹下
  •   void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
      {
        HAL_UART_Transmit(&huart1,test_3_B.USART_Receive_o3,7,0xff); //用于监控
      	HAL_UART_Receive_IT(&huart1,test_3_B.USART_Receive_o3,7); //真正接收
      }
    
  • 这里7是你接收的长度,这样的话第一次发送是无效的,需要在while上提前调用一次HAL_UART_Receive_IT(&huart1,test_3_B.USART_Receive_o3,7);

最后

以上就是精明菠萝为你收集整理的STM32使用simulink编程的全部内容,希望文章能够帮你解决STM32使用simulink编程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部