找回密码
 立即注册
查看: 134|回复: 8

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

[复制链接]
  • TA的每日心情
    开心
    昨天 09:26
  • 签到天数: 60 天

    [LV.6]常住居民II

    2

    主题

    14

    回帖

    362

    积分

    中级会员

    积分
    362
    发表于 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键盘的功能,希望能出一个这样的例程!

    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 89 天

    [LV.6]常住居民II

    13

    主题

    334

    回帖

    774

    积分

    荣誉版主

    热心市民

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

    使用道具 举报

  • TA的每日心情
    开心
    前天 17:54
  • 签到天数: 132 天

    [LV.7]常住居民III

    26

    主题

    1298

    回帖

    4049

    积分

    论坛元老

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

    使用道具 举报

  • TA的每日心情
    开心
    昨天 09:26
  • 签到天数: 60 天

    [LV.6]常住居民II

    2

    主题

    14

    回帖

    362

    积分

    中级会员

    积分
    362
     楼主| 发表于 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
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    4 天前
  • 签到天数: 68 天

    [LV.6]常住居民II

    4

    主题

    413

    回帖

    1120

    积分

    金牌会员

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

    使用道具 举报

    该用户从未签到

    46

    主题

    2935

    回帖

    6621

    积分

    超级版主

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

    使用道具 举报

  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 89 天

    [LV.6]常住居民II

    13

    主题

    334

    回帖

    774

    积分

    荣誉版主

    热心市民

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

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

    使用道具 举报

  • TA的每日心情
    开心
    昨天 09:26
  • 签到天数: 60 天

    [LV.6]常住居民II

    2

    主题

    14

    回帖

    362

    积分

    中级会员

    积分
    362
     楼主| 发表于 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上可以测试的例程。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 09:26
  • 签到天数: 60 天

    [LV.6]常住居民II

    2

    主题

    14

    回帖

    362

    积分

    中级会员

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

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-6 05:56 , Processed in 0.069760 second(s), 64 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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