CH554G 接USB键盘获取键盘按下的键值 使用串口输出 有demo吗?
参考CH554EVT中HOST中代码:
/downloads/CH554EVT_ZIP.html
void KeyCodeCorrespond(UINT8 keyCode)
{
HIDKey[0] = 0;
if((keyCode>='a')&&(keyCode<='z')){
if(LED_VALID&0x02)
{
FLAG = 0;
HIDKey[2] = 0x39;
Enp1IntIn();
while(FLAG == 0);
FLAG = 0;
memset(&HIDKey[0],0,8);
Enp1IntIn();
while(FLAG == 0);
}
keyCode -= 0x5D;
HIDKey[2] = keyCode;
}
请问一下if(LED_VALID&0x02)是什么意思呢
应该是应用逻辑上的一些状态判断,单看这段代码不太明确,结合整体。
可以搜索LED_VALID所有使用到的地方,代码上下都在干什么。
沁恒的芯片一般,连续用了两款芯片都踩坑了,第一个芯片是一个以太网CH395,链接后没有进链接中断,跟客服纠结了两个月,太累了,最后是无限的各种理由拖延,最后放弃了。第二个芯片是CH552做了一个HID设备,芯片很有规律的复位,不知道我到底哪里做错误,最后程序也发给了客服,我们都是用官方相同的开发板做的验证,我这里四台电脑都出同样的问题,沁恒那一次也没有出现我也是醉了,出了问题,不知道问题再哪里,浪费时间,使用芯片尽量选可靠的大品牌
一、CH395中断异常的常见原因可能有:
①通讯接口本身异常,中断值获取有问题
②单片机IO中断信号获取有问题,常见的边沿中断和电平中断的矛盾,CH395是低电平中断
③单片机中断处理函数中的处理方式(中断源判断方式)有问题
二、8位机意外的复位通常可能的原因有:
①、电源不稳定,芯片无法维持正常的运行
②、看门狗存在,没有及时进行喂狗
③、软件工程建立时缺少了一些C文件,一些函数只有声明,没有函数实体
④、RST引脚受到了别的东西的影响(如果不需要外部RST功能,可以直接在ISP工具中关闭该功能)
芯片在测试时常会遇到一些奇怪的问题,问题的发生是硬件、软件的综合结果,通常我们会做排除法来定位问题。但问题的复现始终是最难的问题,需要特定的环境。从您的描述中不难看出,技术支持人员在解决CH395和CH552问题中投入了相应的努力,可能是受限于测试条件的不统一,现象表现并不一致。
CH395和CH552都是有着较多成熟应用的芯片,一些问题可能是由一些电路设计、软件代码上的小细节引起、放大的,当然,沁恒技术支持人员希望能够和使用者一同解决问题。
您可以继续联系技术支持以解决两个芯片的相关问题:/services/technical_support.html
There is also a 5. reason which WCH may not tell you:
The header files for for CH552/CH554 and other x51 CPUs are some what buggy.
This may cause Keil to generate incorrect code on higher optimize levels
As a rule of dump:
never ever use #define to create SFR definitions. Unfortunately WHC use that
a lot in their device header files. Keil threads SFRs like volatile. This might be broken
by using #define.
需要一个模拟触摸的例程方便提供吗?需求是通过按键的方式翻抖音,快手等短视频app,我的邮箱是个人信息保护,已隐藏
有没有CH55X 模拟UPS的例子