经过反复对照,参考了
https://bbs.eeworld.com.cn/thread-521965-1-1.html的5楼和
https://bbs.eeworld.com.cn/thread-528535-1-1.html的板凳回复,终于能来点HID的初样了。具体过程记录如下
- \Middlewares\ST\STM32_BlueNRG\Prof_Periph\includes下的host_config.h文件。84行改为85行,定义为hid
- \Projects\Multi\Applications\Profiles_LowPower\MDK-ARM\ 下,复制一个STM32L476RG-nucleo,并改名为STM32L476RG-sensorTile
- 打开stm32l4xx_nucleo_bluenrg.h(位于Drivers\BSP\STM32L4xx_Nucleo),
- 找到SensorTile_BlueNRG.h文件,一般位于 \Drivers\BSP\SensorTile下,把其中的SPI定义复制到上面文件中,替换。
- Hid_profile_application.c(@Projects\Multi\Applications\Profiles_LowPower\Src),修改line551 为if (send_measurement == 0)
编译通过,一个小warning。下载能看到HID了,可以连接,可是可是,就是不会反复输入啊。看状态栏,处于英文输入法,应该没有问题啊
最后发现是要是第4步的时候,复制完了SPI定义以后,最后有一句//#define RTC_WAKEUP_IRQHandler RTC_WKUP_IRQHandler。这句原本是注释掉的,使用时要把这个注释去掉
这下终于可以看到有不停的AB输入了。不过呢,这个输入速度好快,是因为不停循环的缘故吧。能不能慢慢的来输入呢?我们对hid_profile_application.c文件做点修改。增加一个全局变量uint8_t ctmp,把原来if (send_measurement == 0)改为if(10
不过还遗留了一个问题。就是通过这个HID profile发出来的键值都是usb HID上对应的键值。用来输入是没有问题的,但是怎样是拍照呢?安卓的拍照键值是27,但是其实这个是usb HID的字符x。所以将键值设为27并不能拍照,只能得到一个字符x.