一、同步規則
同步規則模式 adc1 和 adc2 同時各轉換乙個規則通道組,其中 adc1 為主, adc2 為從。 adc1轉換的結果放在 adc1_dr的低 16位,
adc2轉換的結果放在 adc1_dr 的高十六位。
二、觸發轉換方式
adc1
adc_softwarestartconvcmd( adcx_1, enable); //軟體觸發使能
adc2
adc_externaltrigconvcmd(adcx_2, enable); // 使能 adcx_2 的外部觸發轉換
三、資料處理
adc2
temp0 =(adc_value&0xffff0000>>16);
adc1
temp1 =(adc_value&0xffff);
四、程式原始碼
1、bsp_adc.h
#ifndef __bsp_adc_h
#define __bsp_adc_h
#include "stm32f10x.h"
//adc1相關gpio 時鐘 外設
#define adcx_1_gpio_clock rcc_apb2periphclockcmd
#define adcx_1_gpio_periph rcc_apb2periph_gpioc
#define adcx_1_gpio_port gpioc
#define adc1_gpio_pin gpio_pin_1
#define rcc_adc1_clock rcc_apb2periphclockcmd
#define rcc_adc1_periph rcc_apb2periph_adc1
//adc2相關gpio 時鐘 外設
#define adcx_2_gpio_clock rcc_apb2periphclockcmd
#define adcx_2_gpio_periph rcc_apb2periph_gpioc
#define adcx_2_gpio_port gpioc
#define adc2_gpio_pin gpio_pin_4
#define rcc_adc2_clock rcc_apb2periphclockcmd
#define rcc_adc2_periph rcc_apb2periph_adc2
#define adcx_1 adc1
#define adcx_2 adc2
#define adc_count 1
void adc_init_config(void);
#endif /* __bsp_adc_h */
2、bsp_adc.c
#include "bsp_adc.h"
__io uint32_t adc_value;
static void adc_gpio_config(void)
static void adc_mpde_config(void)
void adc_init_config(void)
3、main.c檔案
#include "stm32f10x.h" // 相當於51微控制器中的 #include #include "bsp_led.h"
#include "usart.h"
#include "bsp_adc.h"
extern __io uint32_t adc_value;
float value[adc_count*2];
void delay(u32 i)
int main(void)
}
「雙重ADC 單通道 交替採集」問題及解決
先看 正確採集 adc2 value 0.835474 v adc1 value 0.825000 v adc2 value 0.798413 v adc1 value 0.815332 v再看 錯誤採集 adc2 value 0.000000 v adc1 value 0.794385 v adc...
雙重檢測同步鎖 防止Redis快取穿透
快取穿透 注 上面三個圖會有什麼問題呢?我們在專案中使用快取通常都是先檢查快取中是否存在,如果存在直接返回快取內容,如果不存在就直接查詢資料庫然後再快取查詢結果返回。這個時候如果我們查詢的某乙個資料在快取中一直不存在,就會造成每一次請求都查詢db,這樣快取就失去了意義,在流量大時,可能db就掛掉了。...
STM32 ADC的規則通道和注入通道的區別
stm32的每個adc模組通過內部的模擬多路開關,可以切換到不同的輸入通道並進行轉換。stm32特別地加入了多種成組轉換的模式,可以由程式設定好之後,對多個模擬通道自動地進行逐個地取樣轉換。有2種劃分轉換組的方式 規則通道組和注入通道組。通常規則通道組中可以安排最多16個通道,而注入通道組可以安排最...