单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 113|回复: 0
打印 上一主题 下一主题
收起左侧

stm32智能家居模拟PCB图,原理图,keil程序

[复制链接]
跳转到指定楼层
楼主
基于stm32的智能家居系统模拟电路 Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)


单片机源程序如下:
  1. /*************端口信息********************
  2. * 接线说明
  3. LD3320接口           STM32接口
  4. * RST              PB11
  5. * CS                     PB10
  6. * WR/SPIS          PB12
  7. * P2/SDCK          PB13
  8. * P1/SDO           PB14
  9. * P0/SDI           PB15
  10. * IRQ              PA15
  11. * A0                            PA8
  12. *****************************************/

  13. #include "includes.h"
  14. /* Private function prototypes -----------------------------------------------*/
  15. void RCC_Configuration(void);
  16. //void NVIC_Configuration(void);
  17. void  USART_Configuration(void);
  18. void PrintCom(USART_TypeDef* USARTx, uint8_t *Data);
  19. void PrintComBit(USART_TypeDef* USARTx, uint8_t Data);
  20. extern void  LD3320_main(void);
  21. /***********************************************************
  22. * 名    称: 主函数
  23. * 功    能:        程序入口
  24. * 入口参数:  无
  25. * 出口参数:        无
  26. * 说    明:        无
  27. * 调用方法:         无
  28. **********************************************************/
  29. int main(void)
  30. {
  31.   /* System Clocks Configuration */
  32.           RCC_Configuration();  //外设时钟配置
  33.           delay_init(72);  //延时函数初始化
  34.           USART_Configuration();//USART 配置        
  35.           PrintCom(USART1," USART Init OK!\r\n");
  36.           LD3320_main();                //LD3320 主函数函数
  37.          
  38.           while(1)
  39.           { };
  40. }
  41. /***********************************************************
  42. * 名    称: void  USART_Configuration(void)
  43. * 功    能: 串口配置
  44. * 入口参数:  
  45. * 出口参数:
  46. * 说    明:
  47. * 调用方法:
  48. **********************************************************/
  49. void  USART_Configuration(void)
  50. {
  51.         USART_InitTypeDef USART_InitStructure;
  52.         GPIO_InitTypeDef GPIO_InitStructure;

  53.   USART_InitStructure.USART_BaudRate = 9600;
  54.   USART_InitStructure.USART_WordLength = USART_WordLength_8b;
  55.   USART_InitStructure.USART_StopBits = USART_StopBits_1;
  56.   USART_InitStructure.USART_Parity = USART_Parity_No;
  57.   USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
  58.   USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;

  59.   /* Configure USART1 */
  60.   USART_Init(USART1, &USART_InitStructure);        //类似与GPIO口,配置完后初始化一次
  61.   USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);  //使能接收 中断
  62.   USART_ITConfig(USART1, USART_IT_TXE, ENABLE);  //使能发送 中断
  63.   USART_Cmd(USART1, ENABLE);
  64.         
  65.         
  66.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;                 //USART1 TX
  67.          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  68.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;    //复用推挽输出
  69.   GPIO_Init(GPIOA, &GPIO_InitStructure);                    //A端口

  70.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;                 //USART1 RX
  71.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;   //复用开漏输入
  72.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  73.   GPIO_Init(GPIOA, &GPIO_InitStructure);                         //A端口
  74. }
  75. /***********************************************************
  76. * 名    称:void PrintCom(USART_TypeDef* USARTx, uint8_t *Data)
  77. * 功    能:串口数据打印
  78. * 入口参数:  
  79. * 出口参数:
  80. * 说    明:
  81. * 调用方法:
  82. **********************************************************/
  83. void PrintCom(USART_TypeDef* USARTx, uint8_t *Data)
  84. {
  85.         
  86.                 while(*Data)
  87.                 {
  88.                         USART_SendData(USARTx, *Data++);    /*发送单个数据 */
  89.                         while(USART_GetFlagStatus(USARTx, USART_FLAG_TC)==RESET);/* 检查指定的USART标志位即RESET=1时发送完成*/
  90.                 }                                                                                                        
  91. }

  92. void PrintComBit(USART_TypeDef* USARTx, uint8_t Data)
  93. {
  94.                         USART_SendData(USARTx, Data);    /*发送单个数据 */
  95.                         while(USART_GetFlagStatus(USARTx, USART_FLAG_TC)==RESET);/* 检查指定的USART标志位即RESET=1时发送完成*/                                                                                                        
  96. }

  97. /***********************************************************
  98. * 名    称:void RCC_Configuration(void)
  99. * 功    能:配置外设时钟
  100. * 入口参数:  
  101. * 出口参数:
  102. * 说    明:
  103. * 调用方法:
  104. **********************************************************/
  105. void RCC_Configuration(void)
  106. {
  107.   SystemInit();  
  108.   /* Enable USART1, GPIOA, GPIOx and AFIO clocks */
  109.     RCC_APB2PeriphClockCmd( RCC_APB2Periph_USART1 |RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
  110.                          RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO|
  111.                          RCC_APB2Periph_GPIOE, ENABLE); //开启相关的AHP外设时钟
  112.   /* Enable USART2 clock */
  113.   RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
  114. }

  115. /**
  116.   * @brief  Configures the different GPIO ports.
  117.   * @param  None
  118.   * @retval : None
  119.   */
复制代码

所有资料51hei提供下载:
pcb+原理图+程序.7z (1.54 MB, 下载次数: 6)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 顶 踩
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

快速回复 返回顶部 返回列表
PK10哪个平台赔率高 彩票高賠率好平台 辽宁快乐12 利来彩票开户 浙江体彩6+1 彩票高賠率好平台 澳门最有名彩票网站 哪个彩票平台赔率最高 彩票高賠率好平台 辽宁11选5