|
本帖最后由 happy112 于 2016-6-22 14:39 編輯
開放所有制作資料方便大家diy
0.png (437.41 KB, 下載次數: 138)
下載附件
2016-6-21 18:52 上傳
KBLSTM32基礎套件主要由核心板(CB)以及基礎外設板(PB-B)構成。核心板和外設板采用專有接口接插方式連接。
KBLSTM32基礎套件的整體效果圖(外形尺寸:15cm*10cm):
0.png (467.52 KB, 下載次數: 151)
下載附件
2016-6-21 18:54 上傳
A——MCU,STM32核心板
B——電源模塊,提供了兩種供電方式:5V圓頭適配器或者USB方式,同時提供了電源引出插針,方便實驗調試等用處。
C——USB轉串口模塊,目前計算機上擁有串口的已經少之又少,所以我們去掉了串口,直接設計了USB轉串口,可以提供STM32和計算機的串口通信和對STM32的ISP下載。
D——六位數碼管,用于數碼顯示實驗。采用兩片鎖存器,實現了處理器管腳的復用。數碼管采用共陰極數碼管,高電平點亮。
E——LCD1602和LCD12864的接口。
F——兩個電位器,用于調節LCD1602和LCD12864屏幕對比度。
G——8位LED,可用于發光二極管,GPIO的實驗。采用了共陽極接法。
H——鍵盤,包括K1到K16矩陣鍵盤和K01到K04獨立鍵盤。
I——DS18B20溫度傳感器接口。注意絲印指示溫度傳感器的接法。
J——紅外接收管。
K——AT24C02電路。
L——蜂鳴器電路,低電平控制使能。
M——步進電機驅動電路,經過鎖存器控制使能,以及2003的驅動。
N——步進電機外部驅動電源的引入端口,步進電機可以由外部電源提供電流驅動。
O——繼電器電路。
0.png (349.43 KB, 下載次數: 152)
下載附件
2016-6-21 18:55 上傳
A——Boot0,Boot1啟動順序選擇,使用跳線帽。
B——系統時鐘電路,高頻8MHz,低頻32768Hz。
C——核心板上發光二極管,低電平使能。
D——復位按鍵。
E、F——STM32所有管腳引出。
G——PD0,1,2和電源端口,向外提供3.3V輸出。
H——STM32F103RB主芯片。
I——兩位按鍵,觸發低電平。
J——ISP下載電路,可以通過串口下載程序。
K——JTAG/SWD下載調試電路
L——上電電源指示燈。
M——miniUSB接口,同時可以為核心板供電。
N——5V-3.3V電路,使用優質濾波電容保證電源。
O——RTC后備電池。
PCB:
0.png (49.54 KB, 下載次數: 156)
下載附件
2016-6-21 18:47 上傳
原理圖:
0.png (46.77 KB, 下載次數: 189)
下載附件
2016-6-21 18:48 上傳
下面是這個stm32板子的測試程序資料包
0.png (63.1 KB, 下載次數: 130)
下載附件
2016-6-21 19:08 上傳
主程序如下:
- /*
- /////////////////////////////////////////////////////////////////////////////////
- // _______ _______ //
- // |____ || ____ \ //
- // / / | | \ Author : ZeDis //
- // / / | | E-mail : zedis@sina.com //
- // / / | | QQ : 1599882166 //
- // / /___ | |____/ Subordination: Kinlby S&T Co.,Ltd. //
- // /_______||_______/ //
- // //
- /////////////////////////////////////////////////////////////////////////////////
- // Filename : main.c
- // Project : PROJECT
- // Develop-T : Keil MDK 4.2 & STM32STDPERIPH_LIB 3.5
- // Version : v1.0
- // Releas Date: 2012.06.26
- // Description:
- //
- ////////////////////// (C) COPYRIGHT 2012 KINBLY S&T/////////////////////////////
- // This project developed based on the periph-device library of STMicroelectr
- //-onics,we declare the copyright of STMicroelectronics periph-device library.
- /////////////////////////////////////////////////////////////////////////////////
- // History Releas Version
- // 2012.06.26 V1.0
- // Update records: Achieved the funciton in <description>.
- // —— By ZeDis
- /////////////////////////////////////////////////////////////////////////////////
- */
- /*-------------------------- Includes ----------------------------------------*/
- #include "stm32f10x.h"
- #include "function.h"
- /*-------------------------- Macros -------------------------------------------*/
- /*-------------------------- Private typedef ----------------------------------*/
- /*-------------------------- Variables ---------------------------------------*/
- ErrorStatus HSEStartUpStatus;
- uchar TestType ;
- u8 OfflineFullTest ;
- /*-------------------------- Private function prototypes ----------------------*/
- void SYS_GPIO_init(void);
- void NVIC_Configuration(void);
- void RCC_Configuration(void);
- void TestMenu(void);
- void ScanK1_OffLine(void);
- void EXTI9_5_Config(void);
- /*-------------------------- Function body ------------------------------------*/
- /****************************************************************************
- 函數名稱:main
- 函數功能:主函數,程序入口
- 參數介紹:無
- 返回值 :無
- 注意事項:無
- *****************************************************************************/
- int main(void)
- {
- // 配置系統時鐘
- RCC_Configuration();
- // 初始化幾個關鍵管腳
- SYS_GPIO_init();
- // 配置串口
- Usart_Init();
- // 配置中斷向量
- NVIC_Configuration();
- // 清除整板測試標志位
- OfflineFullTest = 0 ;
- // 先不設置測試項目
- TestType = NULL_TYPE ;
- // 上電4s內檢測離線全板測試命令
- ScanK1_OffLine();
- // 打印測試項目菜單
- TestMenu();
- while(1)
- {
- Function(TestType);
- }
- }
- /****************************************************************************
- 函數名稱:SYS_GPIO_init
- 函數功能:初始化開發套件上幾個關鍵管腳
- 參數介紹:無
- 返回值 :無
- 注意事項:無
- *****************************************************************************/
- void SYS_GPIO_init(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
- //配置核心板上的兩個LED的引腳:PB14,PB15
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15 | GPIO_Pin_14;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_Init(GPIOB, &GPIO_InitStructure);
- GPIO_SetBits(GPIOB, GPIO_Pin_15);
- ///////
- //關閉繼電器, 電動機 的鎖存器的使能,不讓其工作。
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
- GPIO_Init(GPIOC, &GPIO_InitStructure);
- RELY_MOTO_DIS;
- ///////
- //關閉板上數碼管的段選和位選使能
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12 ;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
- GPIO_Init(GPIOC, &GPIO_InitStructure);
- SEG_WEI_DIS;
- SEG_DU_DIS;
- ////////
- //關閉蜂鳴器
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 ;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
- GPIO_Init(GPIOC, &GPIO_InitStructure);
- FM_BEEP_OFF;
- /////////
- //配置K01,K02,K03,K04為輸入
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 ;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
- GPIO_Init(GPIOC, &GPIO_InitStructure);
- /////////
- }
- /****************************************************************************
- 函數名稱:NVIC_Configuration
- 函數功能:配置中斷向量控制器
- 參數介紹:無
- 返回值 :無
- 注意事項:無
- *****************************************************************************/
- void NVIC_Configuration(void)
- {
- NVIC_InitTypeDef NVIC_InitStructure;
- // 選擇使用優先級分組第0組:4位響應優先級
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
- //使能串口中斷
- // 指定串口全局中斷向量號:37
- NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
- // 指定相應優先級 0
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
- // 使能
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
- NVIC_Init(&NVIC_InitStructure);
- ////////
- // 選擇使用優先級分組第1組:1位搶占優先級,3位響應優先級
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
- // 配置RTC全局中斷:3
- NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQn;
- // 指定搶占優先級別 1
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
- // 指定響應優先級別 0
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
- // 使能RTC中斷
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
- // 配置RTC
- NVIC_Init(&NVIC_InitStructure);
- }
- /****************************************************************************
- 函數名稱:RCC_Configuration
- 函數功能:配置系統時鐘樹
- 參數介紹:無
- 返回值 :無
- 注意事項:無
- *****************************************************************************/
- void RCC_Configuration(void)
- {
- // 復位RCC(只用在調試模式)
- RCC_DeInit();
- // 使能外部高速時鐘 HSE
- RCC_HSEConfig(RCC_HSE_ON);
- // 等待HSE穩定
- HSEStartUpStatus = RCC_WaitForHSEStartUp();
- //HSE 穩定后,開始配置系統工作時鐘
- if(HSEStartUpStatus == SUCCESS)
- {
- // HCLK = SYSCLK 設置高速總線時鐘=系統時鐘
- RCC_HCLKConfig(RCC_SYSCLK_Div1);
- // PCLK2 = HCLK 設置低速總線2時鐘=高速總線時鐘
- RCC_PCLK2Config(RCC_HCLK_Div1);
- // PCLK1 = HCLK/2 設置低速總線1的時鐘=高速時鐘的二分頻
- RCC_PCLK1Config(RCC_HCLK_Div2);
- // 令Flash處于等待狀態,2是針對高頻時鐘的
- FLASH_SetLatency(FLASH_Latency_2);
- // 使能flash預讀取緩沖區
- FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
- // PLLCLK = 8MHz * 9 = 72 MHz 利用鎖相環講外部8Mhz晶振9倍頻到72Mhz
- RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
- // Enable PLL 使能鎖相環
- RCC_PLLCmd(ENABLE);
- // 等待鎖相環輸出穩定
- while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
- {
- }
- // 將鎖相環輸出設置為系統時鐘
- RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
- // 等待校驗成功
- while(RCC_GetSYSCLKSource() != 0x08)
- {
- }
- }
- ///////
- // 使能串口1的時鐘,開發套件上使用串口1作為通信接口
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
- // 使能定時器3時鐘,用于蜂鳴器產生音量的變化
- RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
- // 使能GPIO A,B,C和復用引腳外設,允許外設工作
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
- RCC_APB2Periph_GPIOC| RCC_APB2Periph_AFIO, ENABLE);
- }
- /****************************************************************************
- 函數名稱:TestMenu
- 函數功能:測試項目菜單
- 參數介紹:無
- 返回值 :無
- 注意事項:無
- *****************************************************************************/
- void TestMenu(void)
- {
- USART1_Puts("\r\n ********************************************************");
- USART1_Puts("\r\n **============= HRB KBL S&T Co,.Ltd. =================**");
- USART1_Puts("\r\n **========= 用 * 心 * 做 * 到 * 更 * 好 ! ============**");
- USART1_Puts("\r\n **====================================================**");
- USART1_Puts("\r\n * 請按照項目編號進行相應的外設測試: **");
- USART1_Puts("\r\n * F - 執行全板測試; **");
- USART1_Puts("\r\n * 1 - 板上發光二極管測試; **");
- USART1_Puts("\r\n * 2 - 板上多位數碼管測試; **");
- USART1_Puts("\r\n * 3 - 板上LCD1602測試(請斷電換屏); **");
- USART1_Puts("\r\n * 4 - 板上矩陣鍵盤測試; **");
- USART1_Puts("\r\n * 5 - 板上LCD12864測試(請斷電換屏); **");
- USART1_Puts("\r\n * 6 - 板上RTC測試; **");
- USART1_Puts("\r\n * 7 - 蜂鳴器測試; **");
- USART1_Puts("\r\n * 8 - AT24C02測試; **");
- USART1_Puts("\r\n * 9 - 紅外遙控器測試; **");
- USART1_Puts("\r\n * 0 - 溫度傳感器18b20測試; **");
- USART1_Puts("\r\n * a - 繼電器,步進電機測試; **");
- USART1_Puts("\r\n * Other - 顯示測試項選擇菜單; **");
- USART1_Puts("\r\n ********************************************************");
- }
- /****************************************************************************
- 函數名稱:ScanK1_OffLine
- 函數功能:掃描核心板上K1動作,以返回離線全板測試命令
- 參數介紹:無
- 返回值 :無
- 注意事項:無
- *****************************************************************************/
- void ScanK1_OffLine(void)
- {
- u16 Count ;
- GPIO_InitTypeDef GPIO_InitStructure;
- // 配置PC7,核心板上的K1,用于產生離線全板測試命令
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
- GPIO_Init(GPIOC, &GPIO_InitStructure);
- // 關閉D2,開始離線整板測試命令掃描
- GPIO_SetBits(GPIOB,GPIO_Pin_14);
- //一共查詢500次,如果在此過程中發現K1按下,則認為產生離線整板測試命令
- for(Count = 500 ; Count>0;Count--)
- {
- DelayMs(5);
- // 閃爍指示
- GPIO_WriteBit(GPIOB, GPIO_Pin_15, (BitAction)(1 - GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_15)));
- // K1按下
- if(!GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_7))
- { // 消抖
- DelayMs(15);
- if(!GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_7))
- {// 置位:離線整板測試標志位;測試全部項目;置位:全部測試標志位
- OfflineFullTest = 1 ;
- TestType = FULL_TYPE ;
- FullTestFlag = 1 ;
- ///////
- }
- }
- }
- /////////
- // D2 亮起,結束離線命令掃描
- GPIO_ResetBits(GPIOB,GPIO_Pin_14);
- }
- /******************** (C) COPYRIGHT KBL ** END OF FILE **********************/
復制代碼
0.png (72.16 KB, 下載次數: 150)
下載附件
2016-6-21 19:11 上傳
開發板全部資料(壓縮包)下載:
|
-
-
FULLBOARD.rar
2016-6-21 18:58 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
5.95 MB, 下載次數: 157, 下載積分: 黑幣 -5
-
-
STM32.rar
2016-6-21 18:59 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
424.22 KB, 下載次數: 159, 下載積分: 黑幣 -5
評分
-
查看全部評分
|