系列文章目錄
一、基于STM32F103C8T6最小系統板和STM32CubeMX實作LED燈回圈閃爍
二、基于STM32F103C8T6和STM32CubeMX實作UART串口通信資料收發
三、實戰小例程 基于STM32F103C8T6最小系統板和STM32CubeMX驅動WS2812B光立方
四、基于STM32F103C8T6最小系統板HAL庫CubeMX驅動HC-SR501紅外人體傳感模塊
文章目錄
- 系列文章目錄
- 前言
- 一、配置CubeMX
- 二、硬體連線部分
- 三、邏輯代碼部分
前言
相關模塊的資料不再贅述,已經有很多人寫過,這里給出其中一篇我覺得寫的比較詳細的文章鏈接:模塊資料介紹:
探究人體紅外傳感器HC-SR501
STM32學習筆記 二、基于STM32F103C8T6和STM32CubeMX實作UART串口通信資料收發
一、配置CubeMX
1、新建工程;
2、配置時鐘源,在RCC里面的HSE配置的是晶振時鐘;
3、配置程式燒錄引腳SYS為SWD模式;
4、配置GPIO輸出口,配置一個LED燈(我的板子是PC13),起到串口成功接收到資料時的指示作用;
5、配置GPIO輸入口,用來讀取模塊的輸出電平,我選的是PA1口;
6、配置串口收發引腳;
7、配置時鐘樹,我還是開到最高的72MHz;
8、進行專案設定,最后生成代碼,CubeMX部分就大功告成了

二、硬體連線部分
CH340 ? STM32F103C8T6最小系統板:
?TX ??????????? RX
?RX ???? ???????TX
DAP-LINK ? STM32F103C8T6最小系統板
??3.3V????? ????????VCC
??GND ???? ????????GND
??SWIO ??? ????????SWIO
?SWCLK??? ???????SWCLK
HC-SR501模塊 ? STM32F103C8T6最小系統板
????OUT????????????????? PA1
????GND????? ? ??????????GND
HC-SR501模塊 ? DAP-LINK (這里注意模塊供電范圍為4.5V-20V,用3.3V無法驅動)
?????VCC???? ? ???5V
三、邏輯代碼部分
代碼很簡單,在之前工程的基礎上,僅用在while里進行修改
/* USER CODE BEGIN 4 */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_1) == 1)
{
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);//滅燈
printf("有人\r\n");
HAL_Delay(100);
}
else
{
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);//亮燈
printf("沒人\r\n");
HAL_Delay(1000);
}
}
/* USER CODE END 3 */
現象:
感應到人體,板載LED綠燈亮,同時串口列印“有人”,

注意:
重定義printf后,必須在target里面勾選上MicroLIB,呼叫一下這個微型庫,不然一直卡在里面,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/376033.html
標籤:其他
