为了降低DIY难度,我提供了方案二:采用现成的模块来搭建解码器,需要如下模块
1、STM8S103F单片机模块和编程器
2、433M无线接收模块
3、PL2303 USB转串口模块
或带线的
另外还需要一些杜邦线用来连接这些模块,这些东西都可以在淘宝上买得到。
STM8S103F代码如下
/**
******************************************************************************
* @file Project/main.c
* @author MCD Application Team
* @version V2.1.0
* @date 18-November-2011
* @brief Main program body
******************************************************************************
* @attention
*
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
* TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*
* <h2><center>© COPYRIGHT 2011 STMicroelectronics</center></h2>
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include <stdio.h>
#include <string.h>
#include "stm8s.h"
#include "stm8s_exti.h"
#include "stm8s_it.h"
#include "stm8s_gpio.h"
#include "stm8s_tim2.h"
#include "stm8s_tim4.h"
#include "stm8s_uart1.h"
/* Private defines -----------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
#define LED_GPIO_PORT (GPIOB)
#define LED_GPIO_PINS (GPIO_PIN_5)
#define PULS_LEVEL_HIGH (1)
#define PULS_LEVEL_LOW (0)
#define DEBUG (1)
#define USER_CODE_NUMBER_MAX (10)
#define USER_CODE_INFO_MAGIC (0x12345678)
#define LED_ON GPIO_WriteLow(GPIOB, GPIO_PIN_5)
#define LED_OFF GPIO_WriteHigh(GPIOB, GPIO_PIN_5)
#define LED_REVERSE GPIO_WriteReverse(GPIOB, GPIO_PIN_5)
u32 code_addr;
u32 code = 0;
u32 puls_high = 0;
u32 puls_low = 0;
u8 current_puls_level=PULS_LEVEL_LOW;
u8 check_flag = 0;
u8 found_flag = 0;
s32 value = 0;
u32 last_code = 0;
u32 l