惠普战66 FN LED灯的开启与关闭和FN按键的禁用

本文介绍了一种简单的方法来控制惠普战66笔记本电脑上的FN LED灯,即通过同时按下FN键和Shift键实现FN键的功能禁用或启用,从而使用户可以直接使用F1至F12快捷键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

惠普战66 FN LED灯的开启与关闭和FN按键的禁用

其实,两个问题的解决方法是一模一样的,FN 灯的亮就是Fn键的禁用,就可以直接使用f1到f12,比如刷新就直接按f5.
教程如下:
先按住FN 键不放,然后按SHift就ok.
对网上一大堆表示翻白眼,亏他还是官方解答。

/****************************************************************************** * @fn zb_ReceiveDataIndication * * @brief The zb_ReceiveDataIndication callback function is called * asynchronously by the ZigBee stack to notify the application * when data is received from a peer device. * * @param source - The short address of the peer device that sent the data * command - The commandId associated with the data * len - The number of bytes in the pData parameter * pData - The data sent by the peer device * * @return none */ /* void zb_ReceiveDataIndication( uint16 source, uint16 command, uint16 len, uint8 *pData ) { //处理数据格式 gtwData.parent = BUILD_UINT16(pData[SENSOR_PARENT_OFFSET+ 1], pData[SENSOR_PARENT_OFFSET]); gtwData.source=source; gtwData.temp=*pData; gtwData.voltage=*(pData+1); // Flash LED 1 once to indicate data reception //接收到数据之后LED闪烁1次 HalLedSet( HAL_LED_1, HAL_LED_MODE_OFF ); HalLedSet( HAL_LED_1, HAL_LED_MODE_BLINK ); // Send gateway report //发送网关数据 sendGtwReport(&gtwData); } */ void zb_ReceiveDataIndication(uint16 source, uint16 command, uint16 len, uint8 *pData) { gtwData.parent = BUILD_UINT16(pData[SENSOR_PARENT_OFFSET+1], pData[SENSOR_PARENT_OFFSET]); gtwData.source = source; gtwData.temp = *pData; gtwData.humidity = *(pData+1); gtwData.humandetected = *(pData+2); // Flash LED 1 once to indicate data reception HalLedSet(HAL_LED_1, HAL_LED_MODE_OFF); HalLedSet(HAL_LED_1, HAL_LED_MODE_BLINK); // 格式化显示数据 char displayBuf[50]; //sprintf(displayBuf, "22145131 22145137:%d,%d\r\n", gtwData.temp, gtwData.humidity); sprintf(displayBuf, "A0=%d A1=%d H0=%d\r\n", gtwData.temp, gtwData.humidity,gtwData.humandetected); HalUARTWrite(HAL_UART_PORT_0,(uint8 *)displayBuf, strlen(displayBuf)); sendGtwReport(&gtwData); } /****************************************************************************** * @fn uartRxCB * * @brief Callback function for UART * * @param port - UART port * event - UART event that caused callback * * @return none */ /*void uartRxCB(uint8 port, uint8 event) { uint8 pBuf[RX_BUF_LEN]; uint16 len; uint16 cmd; if (event != HAL_UART_TX_EMPTY) { len = HalUARTRead(HAL_UART_PORT_0, pBuf, RX_BUF_LEN); if (len > 0) { // 检查是否是PING请求 cmd = BUILD_UINT16(pBuf[SYS_PING_CMD_OFFSET+1], pBuf[SYS_PING_CMD_OFFSET]); if ((pBuf[FRAME_SOF_OFFSET] == CPT_SOP) && (cmd == SYS_PING_REQUEST)) { sysPingReqRcvd(); return; } // 处理字符串命令 if (strncmp((char *)pBuf, "0x131 ON", 8) == 0) { // LED ON命令 HalLedSet(HAL_LED_2, HAL_LED_MODE_BLINK); uint8 cmd[] = "305 ON"; zb_SendDataRequest(0xFFFF, SENSOR_REPORT_CMD_ID, sizeof(cmd)-1, cmd, 0, AF_ACK_REQUEST, 0); HalUARTWrite(HAL_UART_PORT_0, "22145131 22145137:LED ON ok\r\n", sizeof("22145131 22145137:LED ON ok\r\n")); } else if (strncmp((char *)pBuf, "0x131 OFF", 9) == 0) { // LED OFF命令 HalLedSet(HAL_LED_2, HAL_LED_MODE_OFF); uint8 cmd[] = "305 OFF"; zb_SendDataRequest(0xFFFF, SENSOR_REPORT_CMD_ID, sizeof(cmd)-1, cmd, 0, AF_ACK_REQUEST, 0); HalUARTWrite(HAL_UART_PORT_0, "22145131 22145137:LED OFF命令已发送\r\n", sizeof("22145131 22145137:LED OFF命令已发送\r\n")); } else if (strncmp((char *)pBuf, "0x132", 5) == 0) { // 单次采集命令 uint8 cmd[] = "SINGLE_REPORT"; zb_SendDataRequest(0xFFFE, SENSOR_REPORT_CMD_ID, sizeof(cmd)-1, cmd, 0, AF_ACK_REQUEST, 0); HalUARTWrite(HAL_UART_PORT_0, "22145131 22145137:one collect ok\r\n", sizeof("22145131 22145137:one collect ok\r\n")); } else if (strncmp((char *)pBuf, "0x133", 5) == 0) { // 连续采集命令 continuousReporting = 1; reportCount = 0; uint8 cmd[] = "CONTINUOUS_REPORT"; zb_SendDataRequest(0xFFFE, SENSOR_REPORT_CMD_ID, sizeof(cmd)-1, cmd, 0, AF_ACK_REQUEST, 0); HalUARTWrite(HAL_UART_PORT_0, "22145131 22145137:many collect ok\r\n", sizeof("22145131 22145137:many collect ok\r\n")); } else if (strncmp((char *)pBuf, "0x134", 5) == 0) { // 停止采集命令 continuousReporting = 0; uint8 cmd[] = "STOP_REPORT"; zb_SendDataRequest(0xFFFE, SENSOR_REPORT_CMD_ID, sizeof(cmd)-1, cmd, 0, AF_ACK_REQUEST, 0); HalUARTWrite(HAL_UART_PORT_0, "22145131 22145137:stop collect ok\r\n", sizeof("22145131 22145137:stop collect ok\r\n")); } } } }*/ /*风扇传感器------------------------------------------------------------------ ------------------------------------------------------------------------*/ //转速显示函数 int count = 0; void Speed(void) { char Str[10]; sprintf(Str,"%d\r\n",count/3); Uart_Send_String(Str); //串口发送数据 count = 0; halWait(250); //延时 halWait(250); halWait(250); halWait(250); } /*T1初始化函数,配置为pwm模式 -------------------------------------------------------*/ void t1_init(void) { PERCFG = 0x03; //位置1 定时器1设置为位置1, P0SEL |= 0x20; //P0_5用作外设接口 P0DIR |= 0x20; P2DIR |= 0xC0; T1CNTL = 0x00; T1CNTH = 0x00; T1CCTL3 = 0x2C; //比较模式6 T1CC0L = 0xFF; //周期 T1CC0H = 0xEF; T1CC3L = 0xFF; //占空比 T1CC3H = 0x6F; T1CTL = 0x0E; //模模式 } /*中断服务子程序 -------------------------------------------------------*/ #pragma vector = P0INT_VECTOR __interrupt void P0_ISR(void) { EA = 0; //关中断 if((P0IFG & 0x02 ) >0 ) //按键中断 ,p0_1 { halWait(200); //去抖动 P0IFG &= ~0x02; //P0.1中断标志清0 T1CC3H = T1CC3H + 0x20; //减小占空比 T1CC3L = 0xFF; } if((P0IFG & 0x10 ) >0 ) //按键中断 ,p0_4 { halWait(200); //去抖动 P0IFG &= ~0x10; //P0.4中断标志清0 T1CC3H = T1CC3H - 0x20; //增大占空比 T1CC3L = 0xFF; } if((P0IFG & 0x40 ) >0 ) // p0_6 { P0IFG &= ~0x40; //P0.5中断标志清0 count++; } P0IF = 0; //P0中断标志清0 EA = 1; //开中断 } /*延时函数 -------------------------------------------------------*/ void halWait(unsigned char wait) { unsigned long largeWait; if(wait == 0) {return;} largeWait = ((unsigned short) (wait << 7)); largeWait += 114*wait; largeWait = (largeWait >> CLKSPD); while(largeWait--); return; } //节能模式 void SetLowPowerMode(void) { // 1. 降低传感器采样频率 osal_stop_timerEx(sapi_TaskID, SENSOR_SAMPLE_EVT); osal_start_timerEx(sapi_TaskID, SENSOR_SAMPLE_EVT, 5000); // 5秒采样 // 2. 关闭非必要外设 HalLedSet(HAL_LED_2, HAL_LED_MODE_OFF); // 关闭D6 // 3. 发送节能通知 Uart_Send_String("SYSTEM: Entering Low Power Mode"); }
最新发布
07-03
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值