找回密码
 立即注册
查看: 1125|回复: 9

STC8H2K08U与STC8H8K64U的USB配置有什么不同

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:273
  • 最近打卡:2025-05-02 09:32:45

3

主题

17

回帖

582

积分

高级会员

积分
582
发表于 2024-4-23 18:13:31 | 显示全部楼层 |阅读模式
STC8H2K08U与STC8H8K64U的USB配置有什么不同?
为什么实验箱8.3的例程[40-USB键盘设备通过P0口矩阵按键模拟小键盘功能]
在STC8H8K64U上测试正常,在STC8H2K08U上测试不行?
在双串口的通用例程[17-USB-CDC虚拟串口转串口+USB-HID键盘的复合设备]中,

STC8H2K08U与STC8H8K64U均测试正常,但例程中按键是单个的独立按键。
能否提供一个在STC8H2K08U可以运行的,
类似实验箱8.3的例程[40-USB键盘设备通过P0口矩阵按键模拟小键盘功能]的这种USB矩阵按键的样式例程,
最好再能带一个CDC串口(P1.0P1.1串口2)。这样就可以实现既能使用串口,又能多按键输入了的功能了,
而且STC8H2K08U相对于STC8H8K64U来说价格要低,而相对于CH340的串口芯片来说,
不但性能上可以代替,而且还多出了USB键盘的功能,希望能出一个这样的例程!

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:417
  • 最近打卡:2025-04-30 21:39:09
已绑定手机

34

主题

2096

回帖

2206

积分

荣誉版主

积分
2206
发表于 2024-4-24 00:00:16 | 显示全部楼层
STC8H2K08U与STC8H8K64U的USB配置是相同的,只是无论从ROM还是RAM资源都有明显差别,
STC8H2K08U适合一些简单的USB接口应用,对于一些较复杂的应用,建议还是用STC8H8K64U,
不是走量的话,成本差不了多少。
睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2024-4-24 09:46:48 | 显示全部楼层
STC8H2K08U芯片脚位比较少,没有P0口,矩阵按键功能需要你自己移植。
USB配置没有什么不同的,既然独立按键例子测试正常,估计只是矩阵按键没有处理好。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:273
  • 最近打卡:2025-05-02 09:32:45

3

主题

17

回帖

582

积分

高级会员

积分
582
发表于 2024-4-24 09:58:06 来自手机 | 显示全部楼层
晓飛飛 发表于 2024-4-24 00:00
STC8H2K08U与STC8H8K64U的USB配置是相同的,只是无论从ROM还是RAM资源都有明显差别,
STC8H2K08U适合一些简 ...

即使用STC8H8K64U也没有我上述的例程呀?现有例程一个是USB矩阵键盘的例程,一个是符合设备:CDC串口+USB独立按键的例程。希望给出一个符合设备:CDC串口+USB矩阵键盘的例程。我也试着参考前边USB矩阵键盘的例程改了,但两个例程不是一个风格的,关于USB配置的细节上看上去有些许不同,没有修改成功。从逻辑上来说应当是给出的例程越多,越能说明芯片的功能强大,也越能促进芯片的销量呀,而不是说因为芯片销量大,才想着去做更多例程的呀。还是希望能出一个例程的,既然芯片有这个功能,就应当给出例程来让更多的人去应用呀。

点评

目前需要做的例程太多了,后续一定会有这样的例程,根据独立按键例程去改矩阵键盘是没啥太大难度的,键码接入方式是一样的,只是按键检测输出键码的过程需要重写一下。  详情 回复 发表于 2024-4-24 18:26
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:395
  • 最近打卡:2025-05-02 05:31:55

16

主题

702

回帖

2474

积分

金牌会员

积分
2474
发表于 2024-4-24 11:50:33 | 显示全部楼层
USB配置应该是相同的,可以再仔细检查一下程序,并且看看IO口的使用是否一致
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12079
发表于 2024-4-24 15:22:13 | 显示全部楼层
ROM、SRAM大小不同,其余没啥区别。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:417
  • 最近打卡:2025-04-30 21:39:09
已绑定手机

34

主题

2096

回帖

2206

积分

荣誉版主

积分
2206
发表于 2024-4-24 18:26:06 | 显示全部楼层
蓝色*** 发表于 2024-4-24 09:58
即使用STC8H8K64U也没有我上述的例程呀?现有例程一个是USB矩阵键盘的例程,一个是符合设备:CDC串口+USB ...

目前需要做的例程太多了,后续一定会有这样的例程,根据独立按键例程去改矩阵键盘是没啥太大难度的,键码接入方式是一样的,只是按键检测输出键码的过程需要重写一下。
睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:273
  • 最近打卡:2025-05-02 09:32:45

3

主题

17

回帖

582

积分

高级会员

积分
582
发表于 2024-4-25 10:29:08 | 显示全部楼层
晓*** 发表于 2024-4-24 18:26
目前需要做的例程太多了,后续一定会有这样的例程,根据独立按键例程去改矩阵键盘是没啥太大难度的,键码 ...

好的,其实是否为矩阵键盘都无所谓,主要是实验箱8.3的例程中含有按键状态检测的函数SendKeyStatus();会比较好用:
        while (1)
        {
                if(B_1ms)   //1ms到
                {
                        B_1ms = 0;
               
                        if(++cnt50ms >= 30)     //30ms扫描一次行列键盘
                        {
                                cnt50ms = 0;
                                KeyScan();
                        }

                        if(KeyChangeFlag)   //按键状态产生变化
                        {
                                KeyChangeFlag = 0;
                                SendKeyStatus();
                        }
                }
        }
后边再出例程的话,如果是因为外设引脚太少,没法用矩阵键盘的话,也可以是独立按键,主要希望能带上按键状态检测的函数SendKeyStatus();,我测试程序其实用的是tssop20封装的STC8H8K64U,这个也没有P0口的,我是将按键口改到了P1口,将矩阵键盘扫描改成独立按键扫描来测试的,这样测试方便一点,后边想改回矩阵键盘扫描也好改,改动部分如下:
#define KeyIO P1
......
void KeyScan(void)
{       
        KeyIO = 0xFF;
        IO_KeyDelay();
        if(KeyIO == 0xFF)  //如果现在没有按键按下
        {
                NewKeyCode = 0;   //没有键按下
        }
        else  //开始键盘扫描
        {
                //保存当前按键状态
                NewKeyCode = (~KeyIO) & 0xFF;
        }

        if(NewKeyCode != OldKeyCode) //判断按键是否发生了改变
        {
                KeyHoldTime = 0;           //键盘按下时间为0
                OldKeyCode = NewKeyCode;   //保存当前按键状态
                KeyChangeTemp = 1;
        }
        else
        {
                KeyHoldTime++;         //按下时间累计
                if(KeyHoldTime >= 1)         //如果按下时间足够
                {
                        KeyHoldTime = 1;
                        KeyCode = OldKeyCode;  //保存按键
                        if(KeyChangeTemp)
                        {
                                KeyChangeTemp = 0;
                                KeyChangeFlag = 1;   //设置发送标志
                        }
                }
        }
}
这样对于STC8H8K64U来说,测试是正常的,但下载到STC8H2K08U上就不正常了,不知道要怎么改。而这样只测试了带按键状态检测按键程序,希望是再带一个CDC串口进去,端口希望是P1.0P1.1串口2,如果跟按键冲突的话也可以设置到P3.6P3.7串口1,希望例程能在STC8H2K08U上测试,如果硬件资源不够,至少给一个在STC8H8K64U上可以测试的例程。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:273
  • 最近打卡:2025-05-02 09:32:45

3

主题

17

回帖

582

积分

高级会员

积分
582
发表于 2024-4-26 23:23:30 | 显示全部楼层
晓*** 发表于 2024-4-24 18:26
目前需要做的例程太多了,后续一定会有这样的例程,根据独立按键例程去改矩阵键盘是没啥太大难度的,键码 ...

目前单独的矩阵键盘和单独的CDC串口都测试没有问题了,非常期待综合例程!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:393
  • 最近打卡:2025-05-02 05:53:12
已绑定手机

17

主题

137

回帖

1523

积分

金牌会员

积分
1523
发表于 2024-5-13 16:23:09 来自手机 | 显示全部楼层
🎉.
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 15:45 , Processed in 0.173388 second(s), 113 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表