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);
  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值