0
本帖最后由 lustao 于 2021-10-20 15:01 编辑
接上稿,
想用星空派GD32F303开发板资源 (P F 7)输出,(PC3)模拟输入,板(P F0~3)LED,板(PA 0 、PC13 、 P F 5 、 P F 4)button,来通过光耦中间继电器控制加热设备。程序根据厂家及旗点科技创始人 连志安提供资料及视频 ,想采用RT-Thread RTOS系统在arm keil 5.29上开始构造。
第一部分建立rtos及button和LED环境:
安装RT-Thread及其env软件.
在rt-threadbspgd32303e-eval 目录中右键
选中conEmu Here
打入命令menuconfig
配置好后保存.
打入命令scons --target=mdk5
rtthread配置完成。
打开
rt-threadbspgd32303e-eval下project.uvprojx文件,
在项目applications加入button按键程序,
编写如下代码:
- /*
- * File : main.c
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2009, RT-Thread Development Team
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rt-thread.org/license/LICENSE
- *想用星空派gd32F303开发板资源 (P F 7)输出(19),(PC3)模拟输入(29),板(P F0~3)LED,板(PA 0 、PC13 、 P F 5 、 P F 4)button,来通过光耦中间继电器控制加热设备。
- * Change Logs:
- * Date Author Notes
- * 2021-10-29 first implementation
- */
- #include
- #include
- #include "stdio.h"
- #include
- #include
- #include "gd32f303e_eval.h"
- //#include "systick.h"
- #include "button.h"
- uint8_t pin_count = 0;
- void key_init (void)//(PA 0 、PC13 、 P F 5 、 P F 4)
- {
-
- /* 使能 GPIOC 时钟源 */
- rcu_periph_clock_enable(RCU_GPIOA);
- rcu_periph_clock_enable(RCU_GPIOC);
- rcu_periph_clock_enable(RCU_GPIOF);
- /* 配置按键为 浮空输入 */
- gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_0); //34
- gpio_init(GPIOC, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_13); //7
- gpio_init(GPIOF, GPIO_MODE_IN_FLOATING , GPIO_OSPEED_50MHZ,GPIO_PIN_4|GPIO_PIN_5); //14,15
-
- }
- void key_exit_mode_init (void)
- {
- //复用功能时钟源
- rcu_periph_clock_enable(RCU_AF);
-
- /* 配置中断优先级 */
- nvic_irq_enable(EXTI10_15_IRQn, 2U, 0U);
- /* 把对应的引脚连接到 exit外部中断 */
- gpio_exti_source_select(GPIO_PORT_SOURCE_GPIOC, GPIO_PIN_SOURCE_13);
- /* 配置外部中断13 */
- exti_init(EXTI_13, EXTI_INTERRUPT, EXTI_TRIG_FALLING);
- exti_interrupt_flag_clear(EXTI_13);
- }
- uint8_t key_state_get(void)
- {
- return gpio_input_bit_get(GPIOC, GPIO_PIN_13);
- }
- void led_init (void)
- {
- /* 使能对应得时钟源 */
- rcu_periph_clock_enable(RCU_GPIOF);
- /* 配置引脚 */
- gpio_init(GPIOF, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3);//10~13
- }
- void led_on(int lednum)
- {
- switch(lednum)
- {
- case 0:
- gpio_bit_set(GPIOF,GPIO_PIN_0);
- break;
-
- case 1:
- gpio_bit_set(GPIOF,GPIO_PIN_1);
- break;
-
- case 2:
- gpio_bit_set(GPIOF,GPIO_PIN_2);
- break;
- case 3:
- gpio_bit_set(GPIOF,GPIO_PIN_3);
- break;
- }
- }
- void led_off(int lednum)
- {
- switch(lednum)
- {
- case 0:
- gpio_bit_reset(GPIOF,GPIO_PIN_0);
- break;
-
- case 1:
- gpio_bit_reset(GPIOF,GPIO_PIN_1);
- break;
-
- case 2:
- gpio_bit_reset(GPIOF,GPIO_PIN_2);
- break;
- case 3:
- gpio_bit_reset(GPIOF,GPIO_PIN_3);
- break;
- }
- }
- uint8_t Button_2 ,Button_3 ,Button_4 ;
- Button_t Button2;
- Button_t Button3;
- Button_t Button4;
- uint8_t a,b,c;
- uint8_t a_v,b_v,c_v;
- uint8_t Button2_Dowm_v=0,Button2_Dowm_rgbv;
- //返回句柄
- uint8_t pin_r ,pin_g, pin_b , pin_4;
- //GPIO模拟PWM的实体
- void pwm_entry(void* p){
- uint8_t count;
- while(1) {
- //设定脉宽200ms
- count++;
- count %=10;
- rt_thread_mdelay(1);
- //模拟pwm比较
- //红色的pwm输出
- if (a_v==5) {
- if( count>=a){
- rt_pin_write(pin_r, PIN_LOW);
- }
- else {
- rt_pin_write(pin_r,PIN_HIGH);
- }
- } else {
- rt_pin_write(pin_r,PIN_HIGH);
- }
- //绿色的PWM输出
- if (b_v==5) {
- if(count>=b)
- {
- rt_pin_write(pin_g, PIN_LOW);
- }
- else {
- rt_pin_write(pin_g,PIN_HIGH);
- }
- } else {
- rt_pin_write(pin_g,PIN_HIGH);
- }
- //蓝色的pwm输出
- if (c_v==5) {
- if(count>=c)
- {
- rt_pin_write(pin_b, PIN_LOW);
- }
- else {
- rt_pin_write(pin_b,PIN_HIGH);
- }
- } else {
- rt_pin_write(pin_b,PIN_HIGH);
- }
- }
- }
- void pwm_init(){
- rt_thread_t tid1;
- rt_err_t ret= RT_EOK ;
- /* 设置PIN脚模式为输出 */
- rt_pin_mode(pin_r, PIN_MODE_OUTPUT);
- rt_pin_mode(pin_g, PIN_MODE_OUTPUT);
- rt_pin_mode(pin_b, PIN_MODE_OUTPUT);
- rt_pin_write(pin_r, PIN_HIGH);
- rt_pin_write(pin_g, PIN_HIGH);
- rt_pin_write(pin_b,PIN_HIGH);
- // rt_thread_t rt_thread_create( "pwm_rgb",//const char* name
- // pwm_entry,//void (*entry)(void* parameter)
- // RT_NULL,//void* parameter
- // 512 ,//rt_uint32_t stack_size
- // 3 ,//rt_uint8_t priority
- // 2 );//rt_uint32_t tick
- tid1 = rt_thread_create( "pwm_rgb", pwm_entry, RT_NULL, 512 ,
- 3 ,
- 2 );
- /* 如果获得线程控制块,启动这个线程 */
- if (tid1 != RT_NULL)
- rt_thread_startup(tid1);
- // _irrx_hw_init
- // tid1 = rt_thread_create( "irrx_hw", test_irda, RT_NULL, 4096 ,3 , 2 );
- /* 如果获得线程控制块,启动这个线程 */
- // if (tid1 != RT_NULL)
- // rt_thread_startup(tid1);
- // _irrx_hw_init
- }
- // Button
- uint8_t Read_Button2_Level(void)
- {
- return rt_pin_read(Button_2);
- }
- uint8_t Read_Button3_Level(void)
- {
- return rt_pin_read(Button_3);
- }
- uint8_t Read_Button4_Level(void)
- {
- return rt_pin_read(Button_4);
- }
- void Btn2_Dowm_CallBack(void *btn)
- {
- rt_kprintf("Button2 Dowm_!");
- Button2_Dowm_v=1;
- a++;
- rt_kprintf("a=%d",a);
- if (a>10) {a_v=5;
- a=0;
- }else {a_v=5;
- }
- }
- void Btn2_Double_CallBack(void *btn)
- {
- rt_kprintf("Button2 _Double_!");
- }
- void Btn2_Long_CallBack(void *btn)
- {
- rt_kprintf("Button2_Long_!");
- // Button_Delete(&Button2);
- // rt_kprintf("删除Button2");
- // Search_Button();
- }
- void Btn3_Dowm_CallBack(void *btn)
- {
- rt_kprintf("Button3 _Dowm!");
- b++;
- rt_kprintf("b=%d",b);
- if (b>10) {b_v=5;
- b=0;
- }else {b_v=5;
- }
- }
- void Btn3_Double_CallBack(void *btn)
- {
- rt_kprintf("Button3_Double_!");
- }
- void Btn3_Long_CallBack(void *btn)
- {
- rt_kprintf("Button3 _Long_!");
- // Button_Delete(&Button2);
- // rt_kprintf("删除Button3");
- // Search_Button();
- }
- void Btn4_Dowm_CallBack(void *btn)
- {
- rt_kprintf("Button4 _Dowm!");
- c++;if (c>10) {
- c=0;
- }
- }
- void Btn4_Double_CallBack(void *btn)
- {
- rt_kprintf("Button4 _Double_!");
- }
- void Btn4_Long_CallBack(void *btn)
- {
- rt_kprintf("Button4 long_Dowm !");
- // Button_Delete(&Button2);
- // rt_kprintf("删除Button4");
- // Search_Button();
- }
- int main(void)
- {
- #define KEY_ON 0 //
- // Button
- Button_2 = 34;//get_pin(34)// 22
- Button_3 = 7;//get_pin(7); 21
- Button_4 = 15;//get_pin(15); 2
- rt_pin_mode(Button_2 , PIN_MODE_INPUT_PULLUP);
- rt_pin_mode(Button_3 , PIN_MODE_INPUT_PULLUP);
- rt_pin_mode(Button_4 , PIN_MODE_INPUT_PULLUP);
- Button_Create("Button3",
- &Button3,
- Read_Button3_Level,
- KEY_ON);
- Button_Attach(&Button3,BUTTON_DOWM,Btn3_Dowm_CallBack); //单击
- Button_Attach(&Button3,BUTTON_DOUBLE,Btn3_Double_CallBack); //双击
- // Button_Attach(&Button3,BUTTON_CONTINUOS,Btn3_Continuos_CallBack); //连按
- // Button_Attach(&Button3,BUTTON_CONTINUOS_FREE,Btn3_ContinuosFree_CallBack); //连按释放
- Button_Attach(&Button3,BUTTON_LONG,Btn3_Long_CallBack); //长按
- Button_Create("Button2",
- &Button2,
- Read_Button2_Level,
- KEY_ON);
- Button_Attach(&Button2,BUTTON_DOWM,Btn2_Dowm_CallBack); //单击
- Button_Attach(&Button2,BUTTON_DOUBLE,Btn2_Double_CallBack); //双击
- // Button_Attach(&Button2,BUTTON_CONTINUOS,Btn2_Continuos_CallBack); //连按
- // Button_Attach(&Button2,BUTTON_CONTINUOS_FREE,Btn2_ContinuosFree_CallBack); //连按释放
- Button_Attach(&Button2,BUTTON_LONG,Btn2_Long_CallBack); //长按
- Button_Create("Button4",
- &Button4,
- Read_Button4_Level,
- KEY_ON);
- Button_Attach(&Button4,BUTTON_DOWM,Btn4_Dowm_CallBack); //单击
- Button_Attach(&Button4,BUTTON_DOUBLE,Btn4_Double_CallBack); //双击
- // Button_Attach(&Button4,BUTTON_CONTINUOS,Btn4_Continuos_CallBack); //连按
- // Button_Attach(&Button4,BUTTON_CONTINUOS_FREE,Btn4_ContinuosFree_CallBack); //连按释放
- Button_Attach(&Button4,BUTTON_LONG,Btn4_Long_CallBack); //长按
- Get_Button_Event(&Button4);
- Get_Button_Event(&Button3);
- Get_Button_Event(&Button2);
- pin_r = 10;//rt_pin_get(10);
- pin_g = 11;//rt_pin_get(11);
- pin_b = 12;//rt_pin_get(12);
- pin_4= 13;//rt_pin_get(13);
- rt_pin_mode(pin_r, PIN_MODE_OUTPUT);
- rt_pin_mode(pin_g, PIN_MODE_OUTPUT);
- rt_pin_mode(pin_b, PIN_MODE_OUTPUT);
- rt_pin_mode(pin_4, PIN_MODE_OUTPUT);
- rt_kprintf("Hello, worldn");
- a=10;b=10;c=10;//pin_rgb不亮
- a_v=5;b_v=5;c_v=5;//pin_rgb不亮
- // _irrx_hw_init();
- pwm_init();
- // uint8_t pin_count = 0;
- // while (1)
- // {
- //
- // rt_pin_write(pin_r, pin_count&0x1);
- // rt_pin_write(pin_g,( pin_count>>1)&0x1);
- // rt_pin_write(pin_b, ( pin_count>>2)&0x1);
- // rt_thread_mdelay(50);
- // rt_pin_write(pin_r, 0x1);
- // rt_pin_write(pin_g, 0x1);
- // rt_pin_write(pin_b,0x1);
- // rt_thread_mdelay(500);
- // pin_count++;
- // }
- while (1){
- Button_Process();
- // if (Button2_Dowm_v==1) {
- // Button2_Dowm_v=0
- // uint8_t Button2_count = 0;
- // } else {
- //
- // }
- // Button2_Dowm
- rt_thread_mdelay(10);
- pin_count++;
- if ((pin_count%500)==19) {
- // rt_kprintf("Button_4:%d value:%d n",Button_4, rt_pin_read(Button_4));
- // rt_kprintf("Button_3:%d value:%d n",Button_3, rt_pin_read(Button_3));
- // rt_kprintf("Button_2:%d value:%d n",Button_2, rt_pin_read(Button_2));
- }
- }
- }
复制代码
build:
Build started: Project: project
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'g:Keil_v5ARMARMCCBin'
Build target 'rt-thread_gd32f30x'
compiling clock.c...
compiling components.c...
compiling cpu.c...
compiling device.c...
compiling idle.c...
compiling ipc.c...
compiling irq.c...
compiling kservice.c...
compiling mem.c...
compiling mempool.c...
compiling object.c...
compiling scheduler.c...
compiling signal.c...
compiling thread.c...
compiling timer.c...
compiling main.c...
applicationsmain.c(187): warning: #177-D: variable "ret" was declared but never referenced
rt_err_t ret= RT_EOK ;
applicationsmain.c: 1 warning, 0 errors
compiling button.c...
compiling board.c...
compiling drv_usart.c...
compiling drv_spi.c...
compiling drv_i2c.c...
compiling drv_gpio.c...
compiling backtrace.c...
compiling showmem.c...
compiling cpuport.c...
compiling dfs.c...
compiling dfs_file.c...
compiling dfs_fs.c...
compiling dfs_posix.c...
compiling devfs.c...
compiling dfs_elm.c...
compiling ff.c...
compiling i2c_core.c...
compiling i2c_dev.c...
compiling pin.c...
compiling serial.c...
compiling spi_core.c...
compiling spi_dev.c...
compiling completion.c...
compiling dataqueue.c...
compiling pipe.c...
compiling ringblk_buf.c...
compiling ringbuffer.c...
compiling waitqueue.c...
compiling workqueue.c...
compiling shell.c...
compiling cmd.c...
compiling msh.c...
compiling msh_file.c...
compiling finsh_compiler.c...
compiling finsh_error.c...
compiling finsh_heap.c...
compiling finsh_init.c...
compiling finsh_node.c...
compiling finsh_ops.c...
compiling finsh_parser.c...
compiling finsh_var.c...
compiling finsh_vm.c...
compiling finsh_token.c...
compiling libc.c...
compiling mem_std.c...
compiling stdio.c...
compiling stubs.c...
compiling time.c...
linking...
Program Size: Code=95576 RO-data=11272 RW-data=956 ZI-data=5420
After Build - User command #1: fromelf --bin .buildrtthread-gd32f30x.axf --output rtthread.bin
".buildrtthread-gd32f30x.axf" - 0 Error(s), 1 Warning(s).
Build Time Elapsed: 00:00:53
下后运行
com口
- RT - Thread Operating System
/ | 4.0.3 build Oct 20 2021
2006 - 2020 Copyright by rt-thread team
[32m[I/I2C] I2C bus [i2c0] registered[0m
| /
- RT - Thread Operating System
/ | 4.0.3 build Oct 20 2021
2006 - 2020 Copyright by rt-thread team
[32m[I/I2C] I2C bus [i2c0] registered[0m
Hello, world
msh />Button2 Dowm_!a=11Button2 Dowm_!a=1Button2 Dowm_!a=2Button2 Dowm_!a=3Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button2_Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button3 _Long_!Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 long_Dowm !Button4 _Dowm!Button4 _Dowm!Button4 _Dowm!Button3 _Dowm!b=11Button2 Dowm_!a=4Button3 _Dowm!b=1Button3 _Dowm!b=2Button3 _Dowm!b=3Button3 _Dowm!b=4Button3 _Dowm!b=5Button3 _Dowm!b=6Button3 _Dowm!b=7Button3 _Dowm!b=8Button3 _Dowm!b=9Button3 _Dowm!b=10Button3 _Dowm!b=11Button4 _Dowm!Button4 _Dowm!Button4 _Dowm!Button4 _Dowm!Button3 _Dowm!b=1Button3 _Dowm!b=2Button3 _Dowm!b=3Button3 _Dowm!b=4Button3 _Dowm!b=5Button3 _Dowm!b=6Button3_Double_!Button3 _Dowm!b=7Button3 _Dowm!b=8Button3 _Dowm!b=9Button3 _Dowm!b=10Button3 _Dowm!b=11Button2 Dowm_!a=5Button2 Dowm_!a=6Button2 Dowm_!a=7Button2 Dowm_!a=8Button2 Dowm_!a=9Button2 Dowm_!a=10Button2 Dowm_!a=11Button3 _Dowm!b=1Button3 _Dowm!b=2Button3 _Dowm!b=3Button3 _Dowm!b=4Button3 _Dowm!b=5Button3 _Dowm!b=6Button3 _Dowm!b=7Button3 _Dowm!b=8Button3 _Dowm!b=9Button3 _Dowm!b=10Button3 _Dowm!b=11Button4 _Dowm!Button4 _Dowm!Button4 _Dowm!Button4 _Dowm!Button4 _Dowm!
板正常显示
达到预期状态。
|
|