楊楠 金亞玲* 沈陽(yáng)工學(xué)院
引言:以專業(yè)角度來(lái)分析,震動(dòng)開(kāi)關(guān)分為彈簧開(kāi)關(guān)與滾珠開(kāi)關(guān)兩大類來(lái)看。兩大類開(kāi)關(guān)都有兩個(gè)比較重要的指標(biāo)特性,靈敏度和方向性。彈簧開(kāi)關(guān)的靈敏度是指不同的產(chǎn)品,在實(shí)際裝置中會(huì)產(chǎn)生因感應(yīng)振動(dòng)力大小不同的差異,此差異稱為林敏度。
FSMC:可變靜態(tài)存儲(chǔ)控制器,是STM32系列采用的一種新型的存儲(chǔ)器擴(kuò)展技術(shù)。一般可以用FSMC接口與液晶驅(qū)動(dòng)IC連接,實(shí)現(xiàn)數(shù)據(jù)交換。用于各種震動(dòng)觸發(fā)作用,報(bào)盜報(bào)警,智能小車,地震報(bào)警,摩托車報(bào)警等。
CPU型號(hào): STM32F103ZET6 / LQFP-144 / ARM 32-bit Cortex-M3
主頻: 72MHz
內(nèi)部Flash容量: 512KB
內(nèi)部SRAM容量: 64KB
定時(shí)器: 11個(gè)
UART : 5 個(gè)
SPI: 3個(gè) (2個(gè)可復(fù)用為I2S)
I2C: 2個(gè)
ADC : 3個(gè)獨(dú)立的12位ADC
DAC: 2路獨(dú)立12位DAC
CAN : 1個(gè) CAN 2.0B
SDIO : 1個(gè)
USB : USB2.0全速(從機(jī))無(wú)需外部PHY。
(1)硬件連接
首先把振動(dòng)傳感器模塊插到實(shí)驗(yàn)箱的主板上子節(jié)點(diǎn)的串口上,再把ST-Link插到標(biāo)有ST-Link標(biāo)志的JTAG口上,最后把仿真器一段的USB線插到PC機(jī)的USB端口,通過(guò)主板上的“加”“減”按鍵選擇要編程實(shí)驗(yàn)的傳感器。
(2)打開(kāi)工程
使用IAR SWSTM8 1.30軟件,打開(kāi)文件。
(3)編譯文件
補(bǔ)全文件中的代碼,點(diǎn)擊“Project”下面的“Rebuid ALL”,編譯完后無(wú)警告,無(wú)錯(cuò)誤。
(4)燒寫(xiě)程序
編譯完后把程序燒到模塊里,接下來(lái)通過(guò)串口進(jìn)行上位機(jī)通信,把采集到的數(shù)據(jù)同步的傳送到上位機(jī)中。
(5)振動(dòng)傳感器原理圖,如圖1.1
1.1 振動(dòng)傳感器原理圖
#include "stm32f1xx_hal.h"
#include "usartsp_debug_usart.h"
#include "ff.h"
#include "ff_gen_drv.h"
FATFS fs;
FRESULT f_res;
#endif
void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct;
RCC_ClkInitTypeDef RCC_ClkInitStruct;
RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLMUL=RCC_PLL_MUL9;
HAL_RCC_OscConfig(&RCC_OscInitStruct);
HAL_RCC_ClockConfig(&RCC_ClkInitStruct,FLASH_LATENCY_2);
HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
HAL_NVIC_SetPriority(SysTick_IRQn,0,0);
}
int main(void)
{
LCD_Clear(0,0,LCD_DEFAULT_WIDTH,LCD_DEFAULT_HEIGTH,BLACK);
HAL_Delay(1000);
LCD_BK_ON();
LCD_DispString_EN_CH(70,50,(uint8_t *)"開(kāi) 發(fā) 板",BLACK,BLUE,USE_FONT_24);
while (1)
{
if(SW420_StateRead()==SW420_HIGH)
{
LED1_ON;
LCD_DispString_EN_CH(80,200,"有",BLACK,RED,USE_FONT_24);
}
else
{
LED1_OFF;
LCD_DispString_EN_CH(80,200,"無(wú)",BLACK,RED,USE_FONT_24);
}
振動(dòng)輸出高電平,不振動(dòng)輸出低電平。振動(dòng)時(shí)LED3亮,不振動(dòng)時(shí)LED3滅。設(shè)計(jì)效果較好,實(shí)現(xiàn)了設(shè)計(jì)目的和要求。