没有合适的资源?快使用搜索试试~ 我知道了~
首页STM32F10x:系统时钟监控与切换保障应用
STM32F10x:系统时钟监控与切换保障应用
![](https://csdnimg.cn/release/wenkucmsfe/public/img/star.98a08eaa.png)
本文档主要针对STM32F10x系列单片机进行了一次详细的常见应用解析,特别是关于系统时钟的监控和切换问题。STM32F10x因其可靠性而备受青睐,但在实际应用中,由于外部晶体振荡器(HSE)可能出现故障,导致微处理器时钟源丢失,这可能导致系统崩溃,甚至造成严重的数据丢失。因此,确保系统时钟的稳定性和冗余至关重要。 文章首先阐述了在STM32设计中的必要性,即建立一个时钟安全系统(CSS),用于在HSE失效时,能够及时切换到备用的稳定时钟源,如内部高速RC振荡器(HSIRC),以保证STM32在遇到此类问题时仍能保持运行。CSS的激活通常通过RCC_ClockSecuritySystemCmd(ENABLE)函数开启,此时NMI(非可屏蔽中断)会被启用,用于快速响应时钟故障。 一旦HSE时钟发生故障,CSS会触发一个时钟安全中断,该中断会通过NMI传递给Cortex-M3的中断处理程序。在这个过程中,开发人员必须在NMI处理程序中通过设置RCC_CIR寄存器中的CSSC位来清除CSS中断,以防止无限循环。此外,对于STM32F103,时钟失效事件还会被发送到高级定时器TIM1的刹车输入端,以实现电机保护控制功能,确保系统在遇到故障时能够采取适当措施避免进一步损害。 本文档不仅介绍了CSS的工作原理,还提供了如何在实际项目中启动CSS以及处理相关中断的示例代码,这对于STM32F10x使用者来说,是理解和应对系统时钟稳定性问题的重要参考。通过掌握这些技术,工程师们可以更好地利用STM32F10x的特性,提升系统的可靠性和安全性。
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/5350562/bg10.jpg)
STM32 全国巡回研讨会
常见应用解析
2008年9月 16
DMA的概念
DMA是Direct Memory Access的首字母缩写。它的作用
是不需要经过CPU而进行数据传输。
DMA控制器可以代替CPU驱动产生数据访问的地址并执行数据的
读出和写入操作。
DMA传输有三大要素:
传输源:DMA控制器从传输源读出数据;
传输目标:
DMA控制器将数据传输的目标;
触发信号:用于触发一次数据传输的动作,执行一个单位的传输源
至传输目标的数据传输;可以用来控制传输的时机。
STM32的DMA特征
传输源和传输目标可以分别是存储器和/或片上外设,源和目标可
以同为存储器或同为片上外设;
一次数据传输的单位可以为:8位、16位或32位
数据传输的触发信号由硬件确定,不能更改
![](https://csdnimg.cn/release/download_crawler_static/5350562/bg11.jpg)
STM32 全国巡回研讨会
常见应用解析
2008年9月 17
DMA触发源解读
ADC1、TIM2_CH3、TIM4_CH1的DMA请求复用同一个通道,他们
不能同时使用
定时器的各个通道不是使用的同一个DMA请求通道,而且不是所有通
道都能触发DMA请求,例如:
TIM4的通道1、2、3和更新事件才有DMA请求
TIM3的通道1、2、3、触发和更新事件才有DMA请求
设备
通道1 通道2 通道3 通道4 通道5 通道6 通道7
ADC1 ADC1
SPI/I2S SPI1_RX SPI1_TX SPI/I2S2_RX SPI/I2S2_TX
USART USART3_TX USART3_RX USART1_TX USART1_RX USART2_RX USART2_TX
I2C I2C2_TX I2C2_RX I2C1_TX I2C1_RX
TIM1 TIM1_CH1 TIM1_CH2
TIM1_CH4
TIM1_TRIG
TIM1_COM
TIM1_UP TIM1_CH3
TIM2 TIM2_CH3 TIM2_UP TIM2_CH1
TIM2_CH2
TIM2_CH4
TIM3 TIM3_CH3
TIM3_CH4
TIM3_UP
TIM3_CH1
TIM3_TRIG
TIM4 TIM4_CH1 TIM4_CH2 TIM4_CH3 TIM4_UP
![](https://csdnimg.cn/release/download_crawler_static/5350562/bg12.jpg)
STM32 全国巡回研讨会
常见应用解析
2008年9月 18
DMA配置实例
在这个例子中使用了DMA通道6:
DMA请求(触发)源是定时器3
DMA数据源是GPIO输入寄存器/DMA目标是RAM中的缓冲区
设置外设地址:DMA_CPAR6 = (u32)&GPIOD->IDR
设置存储器地址
: DMA_CMAR6 = (u32) Parallel_Data_Buffer
设置数据传输数目
: DMA_CNDTR6 = 512
配置
DMA_CCR6 寄存器:
存储器数据宽度
= 半字
(16位) DMA 模式
= 循环
外设数据宽度
= 半字
(16位) 通道优先级
= 非常高
外设地址递增
= 无递增
中断
= 禁止
存储器地址递增
= 自动递增
传输方向
= 外设地址为传输的源地址
开启DMA请求:设置TIM3_DIER寄存器中的TDE位
设置DMA_CCR6寄存器中的ENABLE位,启动传输通道
![](https://csdnimg.cn/release/download_crawler_static/5350562/bg13.jpg)
STM32 全国巡回研讨会
常见应用解析
2008年9月 19
STM32的内部温度传感器
STM32集成了片上的温度传感器,可以用来测量芯片内部
的温度;
STM32内部温度传感器与ADC的通道16相连,与ADC配
合使用实现温度测量;
测量范围–40~125℃,精度
±
1.5℃。
温度
传感器
内部
电源模块
ADC模块
ADC1_IN16
ADC1_IN17
V
SENSE
V
REFINT
TSVREFE
TSVREFE
控制位
控制位
内部地址数据总线
转换后的数据
![](https://csdnimg.cn/release/download_crawler_static/5350562/bg14.jpg)
STM32 全国巡回研讨会
常见应用解析
2008年9月 20
使用STM32的内部温度传感器
配置步骤:
1. 设置ADC相关参数
2. 选中ADC1的通道16作为输入
3. 设置采样时间17.1 us
4. 设置寄存器ADC_CR2中的TSVREFE位激活温度传感器
// ADC1 regular channel16 Temp Sensor configuration
ADC_RegularChannelConfig(ADC1, ADC_Channel_16, 1, ADC_SampleTime_55Cycles5);
// Enable the temperature sensor and vref internal channel
ADC_TempSensorVrefintCmd(ENABLE);
// ADC1 configuration -----------------------------
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_InitStructure.ADC_ScanConvMode = ENABLE;
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfChannel = 1;
ADC_Init(ADC1, &ADC_InitStructure);
N
cycle
×
t
ADC
=
17.1µs
剩余100页未读,继续阅读
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
u010257121
- 粉丝: 0
- 资源: 9
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- AirKiss技术详解:无线传递信息与智能家居连接
- Hibernate主键生成策略详解
- 操作系统实验:位示图法管理磁盘空闲空间
- JSON详解:数据交换的主流格式
- Win7安装Ubuntu双系统详细指南
- FPGA内部结构与工作原理探索
- 信用评分模型解析:WOE、IV与ROC
- 使用LVS+Keepalived构建高可用负载均衡集群
- 微信小程序驱动餐饮与服装业创新转型:便捷管理与低成本优势
- 机器学习入门指南:从基础到进阶
- 解决Win7 IIS配置错误500.22与0x80070032
- SQL-DFS:优化HDFS小文件存储的解决方案
- Hadoop、Hbase、Spark环境部署与主机配置详解
- Kisso:加密会话Cookie实现的单点登录SSO
- OpenCV读取与拼接多幅图像教程
- QT实战:轻松生成与解析JSON数据
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)