楊楠 金亞玲* 沈陽工學院
引言:以專業角度來分析,震動開關分為彈簧開關與滾珠開關兩大類來看。兩大類開關都有兩個比較重要的指標特性,靈敏度和方向性。彈簧開關的靈敏度是指不同的產品,在實際裝置中會產生因感應振動力大小不同的差異,此差異稱為林敏度。
FSMC:可變靜態存儲控制器,是STM32系列采用的一種新型的存儲器擴展技術。一般可以用FSMC接口與液晶驅動IC連接,實現數據交換。用于各種震動觸發作用,報盜報警,智能小車,地震報警,摩托車報警等。
CPU型號: STM32F103ZET6 / LQFP-144 / ARM 32-bit Cortex-M3
主頻: 72MHz
內部Flash容量: 512KB
內部SRAM容量: 64KB
定時器: 11個
UART : 5 個
SPI: 3個 (2個可復用為I2S)
I2C: 2個
ADC : 3個獨立的12位ADC
DAC: 2路獨立12位DAC
CAN : 1個 CAN 2.0B
SDIO : 1個
USB : USB2.0全速(從機)無需外部PHY。
(1)硬件連接
首先把振動傳感器模塊插到實驗箱的主板上子節點的串口上,再把ST-Link插到標有ST-Link標志的JTAG口上,最后把仿真器一段的USB線插到PC機的USB端口,通過主板上的“加”“減”按鍵選擇要編程實驗的傳感器。
(2)打開工程
使用IAR SWSTM8 1.30軟件,打開文件。
(3)編譯文件
補全文件中的代碼,點擊“Project”下面的“Rebuid ALL”,編譯完后無警告,無錯誤。
(4)燒寫程序
編譯完后把程序燒到模塊里,接下來通過串口進行上位機通信,把采集到的數據同步的傳送到上位機中。
(5)振動傳感器原理圖,如圖1.1

1.1 振動傳感器原理圖
#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 *)"開 發 板",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,"無",BLACK,RED,USE_FONT_24);
}
振動輸出高電平,不振動輸出低電平。振動時LED3亮,不振動時LED3滅。設計效果較好,實現了設計目的和要求。