IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32F103->CUBE生成初始化代码+RT-Thread Studio产生1000HZ的脉冲总结 -> 正文阅读

[嵌入式]STM32F103->CUBE生成初始化代码+RT-Thread Studio产生1000HZ的脉冲总结

一、前言
这是一篇总结。
在开始前,我必须知道1000hz的脉冲是怎样的。
我必须知道的:
1、脉冲是由晶振产生。
2、STM32F103RCTx 晶振在4-16HZ的范围。
3、脉冲的周期长短由Period决定的。
4、脉冲是由Pulse产生的。
5、占空比 = Pulse/Period。
6、频率freqyency= 时钟频率/(分频系数Prescaler+1)/(周期Period+1)。
7、若Pulse=500-1,Period=1000-1,配置的时钟频率为72MHZ,则频率frequency=7210001000/(71+1)/(999+1)=1000HZ,也就是说每秒发出1000个脉冲。
二、环境
软件:CUBE MX,RT-Thread Studio
硬件:正点原子STM32F103RCT6,示波器(验证PWM),ST-LINK(下载、调试)。
三、在CUBE上初始化定时器TIM
选择自己用的芯片型号;
在这里插入图片描述

在定时器配置中设置外部高速时钟HSE;
在这里插入图片描述
debug模式设置未串口Serial模式;
在这里插入图片描述
选择一个需要用到的引脚,我选择一个PA6,PA6上有一个TIM3_CH1(定时器3通道1)。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
这是对外部高速时钟的配置,TIM3挂靠在APB1(查阅资料);
在这里插入图片描述
在这里插入图片描述
以下四个就是CUBE生成的初始化函数,我们只需要其中的3个函数。
在这里插入图片描述
从main.c中复制的初始化函数

void MX_TIM3_Init(void){}

从msp文件中复制引脚初始化

void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim){}

和定时器使能函数

void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base){}

复制到RT-Thread里,复制到能调用的地方就行。
在这里插入图片描述
在Studio中打开定时器总开关
在这里插入图片描述
我们使用的是16MHZ的高速外部时钟
所以这里要改成16000000

在这里插入图片描述
在drv_clk中使用外部时钟
在这里插入图片描述
因为我们上面写了RCC_PLL_MUL9,下面的RCC_PLL_MUL16会覆盖掉RCC_PLL_MUL9,所以删除以下这句话。
在这里插入图片描述
再把JTAG禁用掉以防万一,放到能执行的地方

/******禁用JTAG**/
    __HAL_RCC_AFIO_CLK_ENABLE();
    __HAL_AFIO_REMAP_SWJ_NOJTAG();

最后
在main函数里调用初始化函数

MX_TIM3_Init();

调用初始化函数,初始化PWM的配置

HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);

定时器3通道1(即PA6产生100HZ的脉冲)
这样就能产生1000HZ的脉冲了(误差小于一千分之一),

总结
1、脉冲可以驱动步进电机、舵机等,
2、调节LED灯的亮度(脉冲宽度调制)等。
PS:这是对学习STM32的一个总结,过程中参考了很多篇博客,还有大佬的答疑。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-09-04 17:42:22  更:2021-09-04 17:44:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 1:31:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码