什么是stm32的adc注入模式
答案:1 悬赏:70 手机版
解决时间 2021-03-23 19:58
- 提问者网友:山高云阔
- 2021-03-23 17:10
什么是stm32的adc注入模式
最佳答案
- 五星知识达人网友:第幾種人
- 2021-03-23 17:26
STM32学习日志(9)----ADC 规则组-注入组转换
编译环境: EWARM V5.30
硬件环境: 南京万利 EK-STM32F
主芯片 : STM32F103VBT6
STM32 FW: V3.0.0
作者 : szlihongtao
时间 : 2010-07-01
说明 : 1. 在 SysTick 定时中断程序中刷新LCD的显示
2. DMA1保存数据
*******************************************************************************/
#include "stm32f10x.h"
#include "stm32_m.h"
#include "lcd.h"
/
// 时钟系统复位
RCC_DeInit();
// 使能外部的8M晶振
// 设置外部高速晶振(HSE)
RCC_HSEConfig(RCC_HSE_ON);
// 使能或者失能内部高速晶振(HSI)
RCC_HSICmd(DISABLE);
// 等待HSE起振
// 该函数将等待直到HSE就绪,或者在超时的情况下退出
HSEStartUpStatus = RCC_WaitForHSEStartUp();
if(HSEStartUpStatus == SUCCESS)
{
// 设置AHB时钟(HCLK)
RCC_HCLKConfig(RCC_SYSCLK_Div1); // 72 MHz
// 设置低速AHB时钟(PCLK1)
RCC_PCLK1Config(RCC_HCLK_Div2); // 36 MHz
// 设置高速AHB时钟(PCLK2)
RCC_PCLK2Config(RCC_HCLK_Div1); // 72 MHz
RCC_ADCCLKConfig(RCC_PCLK2_Div8);
// 设置ADC时钟(ADCCLK)
RCC_ADCCLKConfig(RCC_PCLK2_Div8);
// 设置USB时钟(USBCLK)
// USB时钟 = PLL时钟除以1.5
RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5);
// 设置外部低速晶振(LSE)
RCC_LSEConfig(RCC_LSE_OFF);
// 使能或者失能内部低速晶振(LSI)
// LSE晶振OFF
RCC_LSICmd(DISABLE);
// 设置RTC时钟(RTCCLK)
// 选择HSE时钟频率除以128作为RTC时钟
RCC_RTCCLKConfig(RCC_RTCCLKSource_HSE_Div128);
// 使能或者失能RTC时钟
// RTC时钟的新状态
RCC_RTCCLKCmd(DISABLE);
FLASH_SetLatency(FLASH_Latency_2);
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
// 设置PLL时钟源及倍频系数
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
// 使能或者失能PLL
RCC_PLLCmd(ENABLE);
// 检查指定的RCC标志位设置与否
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
{
}
// 设置系统时钟(SYSCLK)
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
// 返回用作系统时钟的时钟源
while(RCC_GetSYSCLKSource() != 0x08)
{
}
}
编译环境: EWARM V5.30
硬件环境: 南京万利 EK-STM32F
主芯片 : STM32F103VBT6
STM32 FW: V3.0.0
作者 : szlihongtao
时间 : 2010-07-01
说明 : 1. 在 SysTick 定时中断程序中刷新LCD的显示
2. DMA1保存数据
*******************************************************************************/
#include "stm32f10x.h"
#include "stm32_m.h"
#include "lcd.h"
/
// 时钟系统复位
RCC_DeInit();
// 使能外部的8M晶振
// 设置外部高速晶振(HSE)
RCC_HSEConfig(RCC_HSE_ON);
// 使能或者失能内部高速晶振(HSI)
RCC_HSICmd(DISABLE);
// 等待HSE起振
// 该函数将等待直到HSE就绪,或者在超时的情况下退出
HSEStartUpStatus = RCC_WaitForHSEStartUp();
if(HSEStartUpStatus == SUCCESS)
{
// 设置AHB时钟(HCLK)
RCC_HCLKConfig(RCC_SYSCLK_Div1); // 72 MHz
// 设置低速AHB时钟(PCLK1)
RCC_PCLK1Config(RCC_HCLK_Div2); // 36 MHz
// 设置高速AHB时钟(PCLK2)
RCC_PCLK2Config(RCC_HCLK_Div1); // 72 MHz
RCC_ADCCLKConfig(RCC_PCLK2_Div8);
// 设置ADC时钟(ADCCLK)
RCC_ADCCLKConfig(RCC_PCLK2_Div8);
// 设置USB时钟(USBCLK)
// USB时钟 = PLL时钟除以1.5
RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5);
// 设置外部低速晶振(LSE)
RCC_LSEConfig(RCC_LSE_OFF);
// 使能或者失能内部低速晶振(LSI)
// LSE晶振OFF
RCC_LSICmd(DISABLE);
// 设置RTC时钟(RTCCLK)
// 选择HSE时钟频率除以128作为RTC时钟
RCC_RTCCLKConfig(RCC_RTCCLKSource_HSE_Div128);
// 使能或者失能RTC时钟
// RTC时钟的新状态
RCC_RTCCLKCmd(DISABLE);
FLASH_SetLatency(FLASH_Latency_2);
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
// 设置PLL时钟源及倍频系数
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
// 使能或者失能PLL
RCC_PLLCmd(ENABLE);
// 检查指定的RCC标志位设置与否
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
{
}
// 设置系统时钟(SYSCLK)
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
// 返回用作系统时钟的时钟源
while(RCC_GetSYSCLKSource() != 0x08)
{
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯