Simulink搭建简易生成方波信号的数学模型并生成C代码,控制STM32开发板输出PWM信号

(本实验开发板选用野火的STM32F103VET6【指南者】)

【本实验是在安装好Matlab、Keil5、MDK、STM32-MAT/TARGET的基础上完成的】

TIP1:配置CubeMX

一、配置SYS

1)Debug(调试)选择Serial Wire(串行线调试),否则程序下载只是一次性,第二次下载会报错,需要长按复位键,很麻烦。

 

2)由于我打算用单片机上PA6引脚输出方波信号(和控制舵机那篇Blog选用相同I/O口),根据官方手册,

可知,PA6是TIM3_CH1,所以Timebase Source(时钟源)设置为TIM3(定时器3)。

 

二、配置RCC

1)将HSE(高速时钟)选择为Crystal/Ceramic Resonator(水晶/陶瓷谐振器)。

三、激活IWDG

1)Activated(激活看门狗),用来检测并解决由于软件错误导致的故障,当计数器到达给定的超时值时,会触发一个中断或产生系统复位。

四、配置I/O口

1)由于用的是PA6,并且最终我们会用示波器测量该口输出的方波信号,故需要激活GPIO_Output(GPIO输出)。

五、配置Clock Configuration

1)选择PLL(锁相环倍频),由于TIM3挂在在高速总线上,HCLK(高速时钟)输入最大的72MHz,生成解决方案。

六、配置Project Manager

1)自己取Project Name(工程名称),注意:不可有中文路径;

2)Application Structure(程序结构)选择Basic(基础模式),另一种模式会使得CubeMX生成一种主函数覆盖Simulink生成的主函数;

3)Toolchain/IDE(工具链/集成开发环境)选择MDK-ARM。

七、保存文件(无需生成代码,直接保存,去目标文件夹发现已经生成.ioc文件了)

 

 

TIP2:配置Matlab环境(在该步骤之前,应当安装好STM32的支持包,即Matlab_MAT_TARGET)

一、修改路径到基于HAL库建立的工程文件的文件夹

 

目录

TIP1:配置CubeMX

TIP2:配置Matlab环境(在该步骤之前,应当安装好STM32的支持包,即Matlab_MAT_TARGET)

TIP3:用simulink建立简易生成PWM信号的数学模型

TIP4:simulink结合HAL库生成main函数的C代码

TIP5:烧录到单片机调试


二、导入STM32_MAT库

1)输入指令>>pathtool等待选择路径找文件。

2)添加并包含子文件,找到STM32_MAT库的路径,保存即可。

 

 

三、配置simulink环境

1)先保存一下该模型,为了将模型路径终点指示到工程文件中。

2)模型设置

(1)求解器:求解器类型——定步长;求解器——离散。

(2)代码生成:系统目标文件——stm32.tlc 。

 

(3)STM32 Options勾选上STM32CubeMX Path update(实时更新路径)。

 

(4)硬件实现:设备供应商——ARM Compatible;设备类型:ARM Cortex-M 。

 

 

TIP3:用simulink建立简易生成PWM信号的数学模型

一、配置内核,加载用CubeMX生成的.ioc文件。

 

二、配置引脚,选择之前初始化的PA6。

 

三、搭建生成方波的简易模型

1)输入用Pulse Generator(脉冲发生器);测量用Scope(示波器)。

2)配置脉冲参数

由于我选用的舵机输入信号振幅150mV,所以键入0.15V;而数字舵机的周期为20ms,所以键入0.02s。

四、直接仿真

1)为了方便观察,我们用五个周期的信号来观察,所以停止时间设置为0.1s,点击运行可以得到示波器信号,占空比为25%。

TIP4:simulink结合HAL库生成main函数的C代码

一、simulink生成C代码

1)ctrl+B生成C代码。记得生成代码之前把示波器删除!

二、HAL库补齐代码

1)用CubeMX补齐代码,因为simulink只是覆盖main函数。把用CubeMX配置好的.ioc文件生成代码,打开会发现主函数已经用simulink写好了,不需要自己编程。编译发现没问题。

 

TIP5:烧录到单片机调试

一、硬件连接

1)示波器与单片机共地;示波器接收PA6的信号

 

二、烧录调试

1)烧录程序,观察示波器

由于HAL库配置为占空比,而simulink脉冲为直接键入的信号,二者波形互补。simulink设置的25%对应HAL库配置的75%占空比。所以控制电机时,只需100%-simulink设置波形即可。

 完!!!

如果将PA6信号线与数字舵机连接,那么舵机将按照占空比转动角度,控制舵机见之前写的文章。https://blog.csdn.net/m0_57106730/article/details/123056882?spm=1001.2014.3001.5501

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值