ISR代表gpio从未被取消

2个帖子/ 0个新帖子
最后发表
kurbylee
离线
最后看到:3年1个月前
加入:2014-11-05分
ISR代表gpio从未被取消

ext_wakeup_enable(uint32_t端口,uint32_t引脚,uint8_t极性)
{
rwip_env。ext_wakeup_enable = 2;
#如果DEVELOPMENT_DEBUG
(EXT_WAKEUP_GPIO, (GPIO_PORT)端口,(GPIO_PIN)端口,PID_GPIO);
# endif
如果(极性== 0)//有源低
GPIO_ConfigurePin((GPIO_PORT)端口,(GPIO_PIN)引脚,INPUT_PULLUP, PID_GPIO, false);/ /活性低。将默认设置为高输入。
其他//活跃高
GPIO_ConfigurePin((GPIO_PORT)端口,(GPIO_PIN)引脚,INPUT_PULLDOWN, PID_GPIO, false);/ /活性高。默认设置为低输入。

wkupct_register_callback (ext_wakeup_cb);

wkupct_enable_irq(1<活动时低,为什么设置最后一个参数为假?关于GPIO_ConfigurePin的评论如下:
*参数:端口- GPIO端口
*引脚-引脚
*模式-引脚模式(输入,输出…)
*功能- pin使用(GPIO, UART, SPI…)
* high - set to TRUE将针设置为高,否则设置为低
如果我GPIO_GetPinStatus这个键盘,我得到高还是低?

我使用一个定制的按钮(port1,pin0)。我有一个外部pullup resitor(10K)在这个垫,当按下按钮,然后绑到GND。
在set_pad_functions:
GPIO_ConfigurePin(GPIO_BUTTON_PORT, GPIO_BUTTON_PIN, INPUT, PID_GPIO, true);
GPIO_RegisterCallback (GPIO_BUTTON_IRQn push_button_handler);
GPIO_EnableIRQ(GPIO_BUTTON_PORT, GPIO_BUTTON_PIN, GPIO_BUTTON_IRQn, true, true, BUTTON_INTERVAL);

在push_button_handler中,我切换另一个GPIO pin状态为高或低。
如果(GPIO_GetPinStatus (LED_PORT LED_PIN) GPIO_SetInactive (LED_PORT LED_PIN);
其他GPIO_SetActive (LED_PORT LED_PIN);
似乎push_button_handler从未被删除。我确信我可以在push_button_handler isr之外ctrl键控制面板。

还有什么其他步骤来设置按钮的gpio,我忘记添加了??
手。

设备:
smdzjl007
离线
最后看到:3年5个月前
加入:2015-08-04 15:07
你好先生/女士,

你好先生/女士,

我在DA14580定制板开发过程中遇到了一个奇怪的问题。我想使用UART1接口进行外部通信。在设置了相应的pin映射后,我可以成功的从外部PC HiperTerminal接收数据,但是我不能从DA board发送任何数据到外部PC。通过仔细的调试,我看到下面的函数从来没有被“系统”称为ISR,除了app_ble_push调用uart_tx_callback activelly,所以数据从来没有发送到UART和callbackbusy从来没有设置为假。你能帮我查一下确切的原因吗?谢谢!

静态void uart_tx_callback(uint8_t res)
{
函数在uart传输isr或应用程序不运行时被调用
如果(res = = UART_STATUS_OK)
{
/ /重置状态指针
tx_state_ptr = UART_NONE;

//获取数据和指针
uint8_t size = app_uart_pull(tx_write_pointer, TX_CALLBACK_SIZE, &tx_state_ptr);

//如果有数据可用,通过uart发送数据
如果(大小> 0)
{
uart_sps_write(tx_write_pointer, size, &tx_state_ptr, &uart_tx_callback);
返回;
}

//如果没有数据,只有流控制,只需发送流控制到UART
if(tx_state_ptr == UART_XOFF || tx_state_ptr == UART_XON)
{
uart_sps_write(0,0, &tx_state_ptr, &uart_tx_callback);
返回;
}
}
其他的
{
(1);//错误:从未知来源调用回调
}

//缓冲区中没有数据,因此回调完成
callbackbusy = FALSE;
}

Br,
张。