基于stm32的智能家居系統模擬電路 Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
單片機源程序如下:
- /*************端口信息********************
- * 接線說明
- LD3320接口 STM32接口
- * RST PB11
- * CS PB10
- * WR/SPIS PB12
- * P2/SDCK PB13
- * P1/SDO PB14
- * P0/SDI PB15
- * IRQ PA15
- * A0 PA8
- *****************************************/
- #include "includes.h"
- /* Private function prototypes -----------------------------------------------*/
- void RCC_Configuration(void);
- //void NVIC_Configuration(void);
- void USART_Configuration(void);
- void PrintCom(USART_TypeDef* USARTx, uint8_t *Data);
- void PrintComBit(USART_TypeDef* USARTx, uint8_t Data);
- extern void LD3320_main(void);
- /***********************************************************
- * 名 稱: 主函數
- * 功 能: 程序入口
- * 入口參數: 無
- * 出口參數: 無
- * 說 明: 無
- * 調用方法: 無
- **********************************************************/
- int main(void)
- {
- /* System Clocks Configuration */
- RCC_Configuration(); //外設時鐘配置
- delay_init(72); //延時函數初始化
- USART_Configuration();//USART 配置
- PrintCom(USART1," USART Init OK!\r\n");
- LD3320_main(); //LD3320 主函數函數
-
- while(1)
- { };
- }
- /***********************************************************
- * 名 稱: void USART_Configuration(void)
- * 功 能: 串口配置
- * 入口參數:
- * 出口參數:
- * 說 明:
- * 調用方法:
- **********************************************************/
- void USART_Configuration(void)
- {
- USART_InitTypeDef USART_InitStructure;
- GPIO_InitTypeDef GPIO_InitStructure;
- USART_InitStructure.USART_BaudRate = 9600;
- USART_InitStructure.USART_WordLength = USART_WordLength_8b;
- USART_InitStructure.USART_StopBits = USART_StopBits_1;
- USART_InitStructure.USART_Parity = USART_Parity_No;
- USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
- USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
- /* Configure USART1 */
- USART_Init(USART1, &USART_InitStructure); //類似與GPIO口,配置完后初始化一次
- USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); //使能接收 中斷
- USART_ITConfig(USART1, USART_IT_TXE, ENABLE); //使能發送 中斷
- USART_Cmd(USART1, ENABLE);
-
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //USART1 TX
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //復用推挽輸出
- GPIO_Init(GPIOA, &GPIO_InitStructure); //A端口
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //USART1 RX
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //復用開漏輸入
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOA, &GPIO_InitStructure); //A端口
- }
- /***********************************************************
- * 名 稱:void PrintCom(USART_TypeDef* USARTx, uint8_t *Data)
- * 功 能:串口數據打印
- * 入口參數:
- * 出口參數:
- * 說 明:
- * 調用方法:
- **********************************************************/
- void PrintCom(USART_TypeDef* USARTx, uint8_t *Data)
- {
-
- while(*Data)
- {
- USART_SendData(USARTx, *Data++); /*發送單個數據 */
- while(USART_GetFlagStatus(USARTx, USART_FLAG_TC)==RESET);/* 檢查指定的USART標志位即RESET=1時發送完成*/
- }
- }
- void PrintComBit(USART_TypeDef* USARTx, uint8_t Data)
- {
- USART_SendData(USARTx, Data); /*發送單個數據 */
- while(USART_GetFlagStatus(USARTx, USART_FLAG_TC)==RESET);/* 檢查指定的USART標志位即RESET=1時發送完成*/
- }
- /***********************************************************
- * 名 稱:void RCC_Configuration(void)
- * 功 能:配置外設時鐘
- * 入口參數:
- * 出口參數:
- * 說 明:
- * 調用方法:
- **********************************************************/
- void RCC_Configuration(void)
- {
- SystemInit();
- /* Enable USART1, GPIOA, GPIOx and AFIO clocks */
- RCC_APB2PeriphClockCmd( RCC_APB2Periph_USART1 |RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
- RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO|
- RCC_APB2Periph_GPIOE, ENABLE); //開啟相關的AHP外設時鐘
- /* Enable USART2 clock */
- RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
- }
- /**
- * @brief Configures the different GPIO ports.
- * @param None
- * @retval : None
- */
復制代碼
所有資料51hei提供下載:
pcb+原理圖+程序.7z
(1.54 MB, 下載次數: 184)
2019-12-4 15:47 上傳
點擊文件名下載附件
|