Error[Pe146]: too many initializer values D:\Git\K118N\z20k11xn_testcode\PostSiliconVerification\PMU\Src\case08_pmu_tempsensor_test.c 46
时间: 2023-08-14 20:05:35 浏览: 297
根据提供的引用内容,第一个问题是关于为什么注释掉Get_SerialNum()函数后才能成功枚举到主机。根据引用\[1\]中的描述,Get_SerialNum()函数是通过读取STM32内部的96bitUniqueID,并将其转换为Unicode码写入Joystick_StringSerial\[\]数组中作为设备序列号返回给PC。可能的原因是,由于之前已经插入了STM32的USBJoystick设备,PC已经登记了该设备的序列号,因此可能会造成冲突导致无法识别。所以,注释掉Get_SerialNum()函数后,可以尝试修改Joystick_StringSerial\[\]数组的内容来成功识别设备。
第二个问题是关于USB初始化成功后,为什么在Delay(10000); Joystick_Send(KEY_RIGHT); while(1)的情况下光标没有任何动作。根据引用\[1\]中的描述,可能的原因是延时不够长。尽管已经设置了较大的延时,但仍然没有起作用。可能需要在循环内部进行延时操作才能使光标移动。
第三个问题是关于Get_SerialNum()函数的具体实现。根据引用\[1\]中的代码,Get_SerialNum()函数通过读取STM32内部的ID1、ID2和ID3来获取设备的唯一ID,并将其转换为Unicode码写入Joystick_StringSerial\[\]数组中作为设备序列号。这个设备序列号与VID、PID一起用于识别不同的设备。
最后一个问题是关于编译错误的问题。根据引用\[3\]中的描述,std::initializer_list是用于访问C++初始化列表中的值的类型。根据引用\[3\]中的错误信息,可能是在case08_pmu_tempsensor_test.c文件的第46行中初始化了过多的值,导致编译错误。需要检查该行代码并确保初始化列表中的值的数量正确。
#### 引用[.reference_title]
- *1* *2* [JoystickMouse](https://blog.csdn.net/u011318735/article/details/13005107)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [C++11中std::initializer_list的使用](https://blog.csdn.net/fengbingchun/article/details/77938005)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文