您的位置:首页 > 新闻 > 热点要闻 > C代码做底层及Matlab_SimuLink做应用层设计单片机程序

C代码做底层及Matlab_SimuLink做应用层设计单片机程序

2025/1/3 6:41:33 来源:https://blog.csdn.net/qq_36625174/article/details/140997628  浏览:    关键词:C代码做底层及Matlab_SimuLink做应用层设计单片机程序

前言:SimuLink工具极其强大,但是能直接支持单片机自主开发的很少,造成这个问题的原因主要是我们使用的芯片底层多是C代码工程,芯片厂家也只提供C代码库,很少能提供SimuLink的支持库,即使提供也不是很不完善,如NXP的一些芯片提供的SimuLink库不含盖高级应用,再比如意法半导体的芯片之前提供SimuLink库底层,后来就断更了,还有一堆bug。不如自己灵活使用芯片厂家提供的C代码底层,做好接口以Simulink做应用层,这样既有C代码的灵活性,也有SimuLink的可读性。

本期以STM32F103单片机为例,设计IO输出及CAN通讯,接受要用中断而不是扫描的形式。

注意:内容及其简略,需要用丰富的相关知识储备

1、以官房的HIL库搭建STM32F103的底层(MXCUBE自动生成)

        略

2、完善底层,以滴答时钟,搭建时间片轮询

        略

3、修改MXCUBE生成的代码main.c的main()函数为mainRun()函数

4、新建SimuLink模型,并打开保存

        略

5、配置SimuLink模型

6、随便做个模型并代码生成,并把生成的代码名称放在C代码工程里,工程根目录下的C代码都要添加到工程里(注意随着工程的增加根目录下的C代码文件可能最增加,即使补充),并且要把根目录设置成头文件目录

7、由于是使用CAN通讯,有可能会使用到下图的工具,需要把一个头文件“can_message.h”放在工程的头文件目录下

/* Copyright 2008-2015 The MathWorks, Inc. */
/*** @file:       can_message.h** Purpose:     Declare custom and register CAN datatype.** $Authors:    Shankar Subramanian $** $Copyright: 2008-2014 The MathWorks, Inc.$**/
#ifndef __CANMESSAGE__HEADER__
#define __CANMESSAGE__HEADER__// #ifdef RTWTYPES_H
#include "rtwtypes.h" /* Use rtwtypes.h if available */
// #else
// #include "tmwtypes.h"
// #endif/* @DO NOT REMOVE: The following typedef is required for targets (FM5, C166 et

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com