概述
第一部分
- 首先你要下载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编程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复