一直忙于工作没时间做评测,看到易码魔盒里面有红外解码配置。刚好工作用到红外解码功能,且手上有配件。
那就先从这里开始吧,硬件比较简单,看图:
在魔盒中配置:
然后生成keil工程,之后修改main函数、编译:
- void main(void)
- {
- /*** MCU init***/
- SC_Init();
- /*<Generated by EasyCodeCube begin>*/
- /*<UserCodeStart>*//*<SinOne-Tag><1>*/
- SCD_IR_Decode_Init();
- /*<UserCodeEnd>*//*<SinOne-Tag><1>*/
- /*<UserCodeStart>*//*<SinOne-Tag><3>*/
- SCD_Time0Control_Cmd( 1 );
- /*<UserCodeEnd>*//*<SinOne-Tag><3>*/
- /*<UserCodeStart>*//*<SinOne-Tag><4>*/
- #define NEC_DATA_SET 0x12
- #define NEC_DATA_UP 0x1B
- #define NEC_DATA_DW 0x1A
- #define NEC_DATA_LF 0x04
- #define NEC_DATA_RT 0x06
- #define NEC_DATA_OK 0x05
- while(1)
- {
- /*<UserCodeStart>*//*<SinOne-Tag><5>*/
- if(SCD_IR_GetReceiveFlag())
- {
- /*<UserCodeStart>*//*<SinOne-Tag><6>*/
- switch(SCD_IR_Decode_ReadValue(2))
- {
- /*<UserCodeStart>*//*<SinOne-Tag><7>*/
- case NEC_DATA_UP:
- GPIO_WriteHigh(GPIO0, GPIO_PIN_1);
- break;
- /*<UserCodeEnd>*//*<SinOne-Tag><7>*/
- /*<UserCodeStart>*//*<SinOne-Tag><8>*/
- case NEC_DATA_DW:
- GPIO_WriteLow(GPIO0, GPIO_PIN_1);
- break;
- /*<UserCodeEnd>*//*<SinOne-Tag><8>*/
- /*<UserCodeStart>*//*<SinOne-Tag><9>*/
- case NEC_DATA_OK:
- GPIO_TogglePin(GPIO0, GPIO_PIN_1);
- break;
- /*<UserCodeEnd>*//*<SinOne-Tag><9>*/
- /*<UserCodeStart>*//*<SinOne-Tag><17>*/
- default: break;
- /*<UserCodeEnd>*//*<SinOne-Tag><17>*/
- }
- /*<UserCodeEnd>*//*<SinOne-Tag><6>*/
- }
- /*<UserCodeEnd>*//*<SinOne-Tag><5>*/
- }
- /*<UserCodeEnd>*//*<SinOne-Tag><4>*/
- /*<Generated by EasyCodeCube end>*/
- }
再用新定义的ISPTOOL工具,把hex烧录到单片机里:
|