3
22
191
注册会员
使用道具 举报 送花
#include "stc32g.h" #include "stc32_stc8_usb.h" #include "string.h" #include "stdio.h" char *USER_DEVICEDESC = NULL; char *USER_PRODUCTDESC = NULL; char *USER_STCISPCMD = "@STCISP#"; #define MAIN_Fosc 24000000L //定义主时钟 #define KEY_P32 P32 #define KEY_P33 P33 #define KEY_P34 P34 #define KEY_P35 P35 // 初始化 void sys_init(); void p20_auto_lighten_extinguish(); void p2_lighten_10m(char p); char putchar(char c) { char temp[2] = {0}; temp[0] = c; USB_SendData(temp, 1); //发送数据缓冲区,长度 usb_OUT_done(); return c; } // 延时 //======================================================================== // 函数: void delay_ms(u8 ms) // 描述: 延时函数。 // 参数: ms,要延时的ms数, 这里只支持1~255ms. 自动适应主时钟. // 返回: none. // 版本: VER1.0 // 日期: 2022-6-3 // 备注: //======================================================================== void delay_ms(u8 ms) { u16 i; do{ i = MAIN_Fosc / 6000; while(--i); //6T per loop }while(--ms); } void main() { int i = 0; P_SW2 |= 0x80; sys_init(); usb_init(); //USB CDC 接口配置 EUSB = 1; //IE2相关的中断位操作使能后,需要重新设置EUSB EA = 1; //打开总中断 while (DeviceState != DEVSTATE_CONFIGURED); //等待USB完成配置 while (1) { if (bUsbOutReady) { USB_SendData(UsbOutBuffer,OutNumber); //发送数据缓冲区,长度(接收数据原样返回, 用于测试) usb_OUT_done(); } if (KEY_P33 == 0) { delay_ms(10); if (KEY_P33 == 0) { P21 = 0; } } else { P21 = 1; } if (KEY_P34 == 0) { delay_ms(10); if (KEY_P34 == 0) { p20_auto_lighten_extinguish(); } } } } void sys_init() { P0M1 = 0x00; P0M0 = 0x00; P1M1 = 0x00; P1M0 = 0x00; P2M0 = 0x00; P2M1 = 0x00; P3M1 = 0x00; P3M0 = 0x00; P4M1 = 0x00; P4M0 = 0x00; P5M1 = 0x00; P5M0 = 0x00; P6M1 = 0x00; P6M0 = 0x00; P7M1 = 0x00; P7M0 = 0x00; } void p20_auto_lighten_extinguish() { P20 = 0; delay_ms(500); P20 = 1; delay_ms(500); } void p2_lighten(char p) { P2 = ~(1 << p); } 复制代码
本版积分规则 发表回复 回帖后跳转到最后一页
|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )
GMT+8, 2025-6-18 22:26 , Processed in 0.129406 second(s), 89 queries .
Powered by Discuz! X3.5
© 2001-2025 Discuz! Team.