|
本帖最后由 Bingou 于 2018-11-18 21:29 编辑
控制的代码是不正确的,更正如下:
<<<< 以下代码由:muzixiaosanshi 提供 ,本人仅负责编辑整理发布>>>>
电机接口虽然是GPIO4,但映射到module是pin15,所以想让电机能够转动,需要进行如下改动
- /* 电机接口GPIO4 */
- MODULE_PIN_ENUM g_test_pin_num4 = PIN_E_GPIO_04;
复制代码 需要修改为
- /* 电机接口GPIO4 */
- MODULE_PIN_ENUM g_test_pin_num4 = PIN_E_GPIO_09;
复制代码 还有个问题,gpio用了后没有释放。
需要新增函数:
- /*
- @func
- gpio_release
- [parameter] m_pin
- IO pin number want to release.
- */
- void gpio_release(MODULE_PIN_ENUM m_pin)
- {
- qapi_Status_t status;
- status = qapi_TLMM_Release_Gpio_ID( &(tlmm_config[m_pin]), (gpio_id_tbl[m_pin]));
- if (status != QAPI_OK)
- {
- iofPrintf("qapi_TLMM_Release_Gpio_ID ERROR: %d\n", status );
- }
-
- return;
- }
复制代码 然后在控制代码中调用该逻辑释放GPIO gpio_release(g_test_pin_num4);
- case EVENT_switch1 :
- currentDataPoint.valueswitch1 = dataPointPtr->valueswitch1;
- gizLog(LOG_INFO,"Evt: EVENT_switch1 %d \n", currentDataPoint.valueswitch1);
- if(0x01 == currentDataPoint.valueswitch1)
- {
- gpio_config(g_test_pin_num4, QAPI_GPIO_OUTPUT_E, QAPI_GPIO_NO_PULL_E, QAPI_GPIO_2MA_E);
- status = qapi_TLMM_Drive_Gpio(gpio_id_tbl[g_test_pin_num4], gpio_map_tbl[g_test_pin_num4].gpio_id, QAPI_GPIO_LOW_VALUE_E);
- gpio_release(g_test_pin_num4);
- //GPIO4=0,表示电机打开
- }
- else
- {
- gpio_config(g_test_pin_num4, QAPI_GPIO_OUTPUT_E, QAPI_GPIO_NO_PULL_E, QAPI_GPIO_2MA_E);
- status = qapi_TLMM_Drive_Gpio(gpio_id_tbl[g_test_pin_num4], gpio_map_tbl[g_test_pin_num4].gpio_id, QAPI_GPIO_HIGH_VALUE_E);
- gpio_release(g_test_pin_num4);
- //GPIO4=1,表示电机关闭
- }
- break;
复制代码
修改内容详见附件:
gizwits_product.zip
(2.98 KB, 下载次数: 0)
|
|