STM32使用simulink编程

📅 2026/8/14 5:23:17
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试试BUGif ((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然后将串口的callbackHAL_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);