找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 20271|回复: 32
收起左侧

STM32单片机开发板及核心板diy制作资料 含PCB 电路原理图下载 带基础外设板

  [复制链接]
ID:124161 发表于 2016-6-21 18:59 | 显示全部楼层 |阅读模式
本帖最后由 happy112 于 2016-6-22 14:39 编辑

开放所有制作资料方便大家diy
0.png
KBLSTM32基础套件主要由核心板(CB)以及基础外设板(PB-B)构成。核心板和外设板采用专有接口接插方式连接。

KBLSTM32基础套件的整体效果图(外形尺寸:15cm*10cm):

0.png


    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


    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
原理图:
0.png

下面是这个stm32板子的测试程序资料包
0.png
主程序如下:
  1. /*
  2. /////////////////////////////////////////////////////////////////////////////////
  3. //     _______  _______                                                        //
  4. //    |____   ||  ____ \                                                       //
  5. //        /  / | |    \ Author  : ZeDis                                        //
  6. //       /  /  | |      E-mail  : zedis@sina.com                               //
  7. //      /  /   | |      QQ      : 1599882166                                   //
  8. //     /  /___ | |____/ Subordination:  Kinlby S&T Co.,Ltd.                    //
  9. //    /_______||_______/                                                       //
  10. //                                                                             //
  11. /////////////////////////////////////////////////////////////////////////////////
  12. //   Filename   :  main.c
  13. //   Project    :  PROJECT
  14. //   Develop-T  :  Keil MDK 4.2 & STM32STDPERIPH_LIB 3.5
  15. //   Version    :  v1.0
  16. //   Releas Date: 2012.06.26
  17. //   Description:  
  18. //
  19. ////////////////////// (C) COPYRIGHT 2012 KINBLY S&T/////////////////////////////
  20. //  This project developed based  on  the periph-device library  of STMicroelectr
  21. //-onics,we declare the copyright of STMicroelectronics periph-device library.   
  22. /////////////////////////////////////////////////////////////////////////////////
  23. //   History Releas Version
  24. //    2012.06.26  V1.0
  25. //        Update records: Achieved the funciton in <description>.
  26. //                                                                    —— By ZeDis
  27. /////////////////////////////////////////////////////////////////////////////////
  28. */
  29. /*-------------------------- Includes ----------------------------------------*/
  30. #include "stm32f10x.h"
  31. #include "function.h"
  32. /*-------------------------- Macros -------------------------------------------*/
  33. /*-------------------------- Private typedef ----------------------------------*/
  34. /*-------------------------- Variables  ---------------------------------------*/
  35. ErrorStatus HSEStartUpStatus;
  36. uchar TestType ;
  37. u8 OfflineFullTest ;
  38. /*-------------------------- Private function prototypes ----------------------*/
  39. void SYS_GPIO_init(void);
  40. void NVIC_Configuration(void);
  41. void RCC_Configuration(void);
  42. void TestMenu(void);
  43. void ScanK1_OffLine(void);
  44. void EXTI9_5_Config(void);
  45. /*-------------------------- Function body ------------------------------------*/

  46. /****************************************************************************
  47. 函数名称:main
  48. 函数功能:主函数,程序入口
  49. 参数介绍:无
  50. 返回值  :无
  51. 注意事项:无
  52. *****************************************************************************/
  53. int main(void)
  54. {
  55.         //  配置系统时钟
  56.         RCC_Configuration();
  57.         //  初始化几个关键管脚
  58.         SYS_GPIO_init();
  59.         //  配置串口
  60.         Usart_Init();
  61.         //  配置中断向量
  62.         NVIC_Configuration();
  63.         //  清除整板测试标志位
  64.         OfflineFullTest = 0 ;
  65.         //  先不设置测试项目
  66.         TestType = NULL_TYPE  ;
  67.         //  上电4s内检测离线全板测试命令
  68.         ScanK1_OffLine();  
  69.         //  打印测试项目菜单
  70.         TestMenu();
  71.         while(1)
  72.           {
  73.                 Function(TestType);
  74.         }
  75. }

  76. /****************************************************************************
  77. 函数名称:SYS_GPIO_init
  78. 函数功能:初始化开发套件上几个关键管脚
  79. 参数介绍:无
  80. 返回值  :无
  81. 注意事项:无
  82. *****************************************************************************/
  83. void SYS_GPIO_init(void)
  84. {
  85.         GPIO_InitTypeDef GPIO_InitStructure;
  86. //配置核心板上的两个LED的引脚:PB14,PB15
  87.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15 | GPIO_Pin_14;
  88.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
  89.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  90.         GPIO_Init(GPIOB, &GPIO_InitStructure);
  91.         GPIO_SetBits(GPIOB,  GPIO_Pin_15);
  92. ///////               
  93. //关闭继电器,          电动机 的锁存器的使能,不让其工作。
  94.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
  95.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
  96.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
  97.         GPIO_Init(GPIOC, &GPIO_InitStructure);        
  98.         RELY_MOTO_DIS;
  99. ///////
  100. //关闭板上数码管的段选和位选使能
  101.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12 ;
  102.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
  103.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
  104.         GPIO_Init(GPIOC, &GPIO_InitStructure);
  105.         SEG_WEI_DIS;
  106.         SEG_DU_DIS;
  107. ////////
  108. //关闭蜂鸣器
  109.         GPIO_InitStructure.GPIO_Pin =   GPIO_Pin_8 ;
  110.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
  111.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
  112.         GPIO_Init(GPIOC, &GPIO_InitStructure);
  113.         FM_BEEP_OFF;
  114. /////////
  115. //配置K01,K02,K03,K04为输入
  116.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 ;
  117.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  118.         GPIO_Init(GPIOC, &GPIO_InitStructure);
  119. /////////
  120. }
  121. /****************************************************************************
  122. 函数名称:NVIC_Configuration
  123. 函数功能:配置中断向量控制器
  124. 参数介绍:无
  125. 返回值  :无
  126. 注意事项:无
  127. *****************************************************************************/
  128. void NVIC_Configuration(void)
  129. {
  130.         NVIC_InitTypeDef NVIC_InitStructure;
  131.         // 选择使用优先级分组第0组:4位响应优先级
  132.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);        
  133. //使能串口中断
  134.         //  指定串口全局中断向量号:37
  135.         NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
  136.         //  指定相应优先级 0
  137.         NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  138.         //  使能
  139.         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  140.         NVIC_Init(&NVIC_InitStructure);
  141. ////////
  142.         // 选择使用优先级分组第1组:1位抢占优先级,3位响应优先级
  143.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
  144.         //  配置RTC全局中断:3
  145.         NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQn;
  146.         //  指定抢占优先级别 1
  147.         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
  148.         //  指定响应优先级别 0
  149.         NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  150.         //  使能RTC中断
  151.         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  152.         //  配置RTC
  153.         NVIC_Init(&NVIC_InitStructure);
  154. }

  155. /****************************************************************************
  156. 函数名称:RCC_Configuration
  157. 函数功能:配置系统时钟树
  158. 参数介绍:无
  159. 返回值  :无
  160. 注意事项:无
  161. *****************************************************************************/
  162. void RCC_Configuration(void)
  163. {
  164.         //  复位RCC(只用在调试模式)
  165.         RCC_DeInit();
  166.         //  使能外部高速时钟 HSE
  167.         RCC_HSEConfig(RCC_HSE_ON);
  168.         //  等待HSE稳定
  169.         HSEStartUpStatus = RCC_WaitForHSEStartUp();
  170. //HSE 稳定后,开始配置系统工作时钟
  171.         if(HSEStartUpStatus == SUCCESS)
  172.         {
  173.                 //  HCLK = SYSCLK 设置高速总线时钟=系统时钟
  174.                 RCC_HCLKConfig(RCC_SYSCLK_Div1);
  175.                 //  PCLK2 = HCLK 设置低速总线2时钟=高速总线时钟
  176.                 RCC_PCLK2Config(RCC_HCLK_Div1);
  177.                 //  PCLK1 = HCLK/2 设置低速总线1的时钟=高速时钟的二分频
  178.                 RCC_PCLK1Config(RCC_HCLK_Div2);
  179.                 //  令Flash处于等待状态,2是针对高频时钟的
  180.                 FLASH_SetLatency(FLASH_Latency_2);
  181.                 //  使能flash预读取缓冲区
  182.                 FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
  183.                 //  PLLCLK = 8MHz * 9 = 72 MHz 利用锁相环讲外部8Mhz晶振9倍频到72Mhz
  184.                 RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
  185.                 //  Enable PLL 使能锁相环
  186.                 RCC_PLLCmd(ENABLE);
  187.                 //  等待锁相环输出稳定
  188.                 while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
  189.                 {
  190.                 }
  191.                 //  将锁相环输出设置为系统时钟
  192.                 RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
  193.                 //  等待校验成功
  194.                 while(RCC_GetSYSCLKSource() != 0x08)
  195.                 {
  196.                 }
  197.         }
  198. ///////
  199.         //  使能串口1的时钟,开发套件上使用串口1作为通信接口
  200.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
  201.         //  使能定时器3时钟,用于蜂鸣器产生音量的变化
  202.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
  203.         //  使能GPIO A,B,C和复用引脚外设,允许外设工作
  204.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
  205.                          RCC_APB2Periph_GPIOC| RCC_APB2Periph_AFIO, ENABLE);
  206. }

  207. /****************************************************************************
  208. 函数名称:TestMenu
  209. 函数功能:测试项目菜单
  210. 参数介绍:无
  211. 返回值  :无
  212. 注意事项:无
  213. *****************************************************************************/
  214. void TestMenu(void)
  215. {
  216.         USART1_Puts("\r\n ********************************************************");
  217.         USART1_Puts("\r\n **============= HRB KBL S&T Co,.Ltd. =================**");        
  218.         USART1_Puts("\r\n **========= 用 * 心 * 做 * 到 * 更 * 好 ! ============**");
  219.         USART1_Puts("\r\n **====================================================**");
  220.         USART1_Puts("\r\n * 请按照项目编号进行相应的外设测试:                  **");
  221.         USART1_Puts("\r\n *    F - 执行全板测试;                                **");
  222.         USART1_Puts("\r\n *    1 - 板上发光二极管测试;                          **");
  223.         USART1_Puts("\r\n *    2 - 板上多位数码管测试;                          **");
  224.         USART1_Puts("\r\n *    3 - 板上LCD1602测试(请断电换屏);                 **");
  225.         USART1_Puts("\r\n *    4 - 板上矩阵键盘测试;                            **");
  226.         USART1_Puts("\r\n *    5 - 板上LCD12864测试(请断电换屏);                **");
  227.         USART1_Puts("\r\n *    6 - 板上RTC测试;                                 **");
  228.         USART1_Puts("\r\n *    7 - 蜂鸣器测试;                                  **");
  229.         USART1_Puts("\r\n *    8 - AT24C02测试;                                 **");
  230.         USART1_Puts("\r\n *    9 - 红外遥控器测试;                              **");
  231.         USART1_Puts("\r\n *    0 - 温度传感器18b20测试;                         **");
  232.         USART1_Puts("\r\n *    a - 继电器,步进电机测试;                        **");
  233.         USART1_Puts("\r\n *    Other - 显示测试项选择菜单;                      **");
  234.         USART1_Puts("\r\n ********************************************************");
  235. }

  236. /****************************************************************************
  237. 函数名称:ScanK1_OffLine
  238. 函数功能:扫描核心板上K1动作,以返回离线全板测试命令
  239. 参数介绍:无
  240. 返回值  :无
  241. 注意事项:无
  242. *****************************************************************************/
  243. void ScanK1_OffLine(void)
  244. {
  245.         u16 Count ;
  246.         GPIO_InitTypeDef GPIO_InitStructure;
  247.         //  配置PC7,核心板上的K1,用于产生离线全板测试命令
  248.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
  249.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  250.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  251.         GPIO_Init(GPIOC, &GPIO_InitStructure);
  252.         //  关闭D2,开始离线整板测试命令扫描
  253.         GPIO_SetBits(GPIOB,GPIO_Pin_14);
  254. //一共查询500次,如果在此过程中发现K1按下,则认为产生离线整板测试命令        
  255.         for(Count = 500 ; Count>0;Count--)
  256.         {
  257.                 DelayMs(5);
  258.                 //   闪烁指示
  259.                 GPIO_WriteBit(GPIOB, GPIO_Pin_15, (BitAction)(1 - GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_15)));        
  260.                 //   K1按下
  261.                 if(!GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_7))
  262.                 {        //   消抖
  263.                         DelayMs(15);
  264.                         if(!GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_7))
  265.                         {//  置位:离线整板测试标志位;测试全部项目;置位:全部测试标志位
  266.                                 OfflineFullTest = 1 ;
  267.                                 TestType = FULL_TYPE  ;
  268.                                 FullTestFlag = 1 ;
  269.                          ///////
  270.                         }               
  271.                 }
  272.         }
  273. /////////
  274.         // D2 亮起,结束离线命令扫描
  275.         GPIO_ResetBits(GPIOB,GPIO_Pin_14);        
  276. }

  277. /********************  (C) COPYRIGHT KBL ** END OF FILE   **********************/
复制代码



0.png
开发板全部资料(压缩包)下载:

FULLBOARD.rar

5.95 MB, 下载次数: 157, 下载积分: 黑币 -5

STM32.rar

424.22 KB, 下载次数: 159, 下载积分: 黑币 -5

评分

参与人数 1黑币 +5 收起 理由
大大大情子 + 5 很给力!

查看全部评分

回复

使用道具 举报

ID:106429 发表于 2016-8-26 09:40 | 显示全部楼层
一定要顶起来,感谢楼主的开源精神!!!
回复

使用道具 举报

ID:153150 发表于 2016-12-8 13:15 | 显示全部楼层
原理图是在哪一个压缩包呀?
回复

使用道具 举报

ID:153760 发表于 2016-12-10 20:13 | 显示全部楼层
很赞,楼主很好
回复

使用道具 举报

ID:153199 发表于 2016-12-31 12:55 | 显示全部楼层
感谢分享
回复

使用道具 举报

ID:159044 发表于 2016-12-31 23:12 | 显示全部楼层
吊,大神啊
回复

使用道具 举报

ID:161977 发表于 2017-1-16 10:36 | 显示全部楼层
新人,顶贴, 求下载
回复

使用道具 举报

ID:161977 发表于 2017-1-16 13:17 | 显示全部楼层
新手想借用你的资料做个东西,谢谢分享。
回复

使用道具 举报

ID:166007 发表于 2017-2-22 16:48 | 显示全部楼层
你好,能把资料直接发给我一份吗?2468635978@qq.com   谢谢拉
回复

使用道具 举报

ID:166590 发表于 2017-2-25 15:39 | 显示全部楼层
很不错  收下了
回复

使用道具 举报

ID:201771 发表于 2017-5-17 14:22 | 显示全部楼层
怎样才能获黑币啊
回复

使用道具 举报

ID:207939 发表于 2017-6-5 10:56 | 显示全部楼层
炒鸡感谢楼主,太屌了!
回复

使用道具 举报

ID:211069 发表于 2017-6-14 10:51 | 显示全部楼层
謝謝樓主提供好需要學習
回复

使用道具 举报

ID:186583 发表于 2017-7-21 19:58 | 显示全部楼层
感谢分享
回复

使用道具 举报

ID:170778 发表于 2017-7-24 10:18 | 显示全部楼层
非常棒,顶一个
回复

使用道具 举报

ID:184018 发表于 2017-9-21 23:44 | 显示全部楼层
正在学习布线  谢谢啦
回复

使用道具 举报

ID:184018 发表于 2017-9-21 23:45 | 显示全部楼层
下载币不够啦····悲剧·····
回复

使用道具 举报

ID:230225 发表于 2017-9-23 15:36 | 显示全部楼层
STM32单片机开发板及核心板diy制作资料可以
回复

使用道具 举报

ID:97832 发表于 2017-10-14 21:20 | 显示全部楼层
谢谢分享学习学习
回复

使用道具 举报

ID:233182 发表于 2017-10-25 02:06 | 显示全部楼层
so good
回复

使用道具 举报

ID:242883 发表于 2017-10-25 18:22 | 显示全部楼层
113101456 发表于 2017-2-25 15:39
**** 作者被禁止或删除 内容自动屏蔽 ****

一定要顶起来,感谢楼主的开源精神!!!!
回复

使用道具 举报

ID:280182 发表于 2018-1-27 13:37 | 显示全部楼层
感谢楼主分享
回复

使用道具 举报

ID:293710 发表于 2018-4-2 20:55 | 显示全部楼层
非常好666666666666
回复

使用道具 举报

ID:304991 发表于 2018-4-10 10:43 | 显示全部楼层
厉害大神
支持开源
回复

使用道具 举报

ID:305096 发表于 2018-4-10 13:27 | 显示全部楼层
非常赞66666666666666666
回复

使用道具 举报

ID:163662 发表于 2018-4-10 13:48 | 显示全部楼层
资料看着很不错啊,可以发布吗
回复

使用道具 举报

ID:325009 发表于 2018-5-8 14:08 | 显示全部楼层
黑币不够啊
回复

使用道具 举报

ID:335867 发表于 2018-5-22 17:45 | 显示全部楼层
厉害厉害!~!
回复

使用道具 举报

ID:388415 发表于 2018-8-21 10:15 | 显示全部楼层
感谢,新手学习。
回复

使用道具 举报

ID:393619 发表于 2018-9-4 16:57 | 显示全部楼层
谢谢楼主的分享 给力
回复

使用道具 举报

ID:210959 发表于 2019-9-15 17:02 | 显示全部楼层
非常好的资料,感谢楼主慷慨分享。
回复

使用道具 举报

ID:96552 发表于 2020-9-25 08:52 | 显示全部楼层
一定要顶起来,感谢楼主的开源精神!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表