我们使用了printf_usb 函数:
看看主函数:
- //<<AICUBE_USER_HEADER_REMARK_BEGIN>>
- ////////////////////////////////////////
- // 在此添加用户文件头说明信息
- // 文件名称: main.c
- // 文件描述:
- // 文件版本: V1.0
- // 修改记录:
- // 1. (2026-03-01) 创建文件
- ////////////////////////////////////////
- //<<AICUBE_USER_HEADER_REMARK_END>>
-
-
- #include "config.h" //默认已包含stdio.h、intrins.h等头文件
-
-
- //<<AICUBE_USER_INCLUDE_BEGIN>>
- // 在此添加用户头文件包含
- #include "key.h"
- #include "smg.h"
-
- //<<AICUBE_USER_INCLUDE_END>>
-
-
- //<<AICUBE_USER_GLOBAL_DEFINE_BEGIN>>
- // 在此添加用户全局变量定义、用户宏定义以及函数声明
- //<<AICUBE_USER_GLOBAL_DEFINE_END>>
-
-
-
- ////////////////////////////////////////
- // 项目主函数
- // 入口参数: 无
- // 函数返回: 无
- ////////////////////////////////////////
- void main(void)
- {
- //<<AICUBE_USER_MAIN_INITIAL_BEGIN>>
- // 在此添加用户主函数初始化代码
- u8 key=1;
- u8 key_num=0; //键值要转换为数码管的段码
-
-
- //<<AICUBE_USER_MAIN_INITIAL_END>>
-
- SYS_Init();
-
- //<<AICUBE_USER_MAIN_CODE_BEGIN>>
- // 在此添加主函数中运行一次的用户代码
- //<<AICUBE_USER_MAIN_CODE_END>>
-
- while (1)
- {
- USBLIB_OUT_Done(); //查询方式处理USB接收的数据
-
- //<<AICUBE_USER_MAIN_LOOP_BEGIN>>
- // 在此添加主函数中用户主循环代码
- key=key_matrix_ranks_scan();
- if(key!=0)
- printf_usb("KEY VALue: %02X. key_value: %02u \r\n", key,key); //输出2位16进制的key按键值,10进制的key按键值
-
-
- if (key!=0) key_num=gsmg_code[key-1]; //Key的段码给了key_num
-
- SMG_DisPlay(&key_num, 8); //本来第一个参数是数组,我们只有1个数,要用&
- //第二个参数是显示位置,我们选第8位(最右边)显示。这个地址运算符&,本来是数组(相当于指针)
- //我们需要传递的是地址,&key_num就是地址(房间的门牌号)
- //<<AICUBE_USER_MAIN_LOOP_END>>
- }
- }
复制代码
|