GPIO的ISR永远不会被嘲笑

2个帖子/ 0新
最后一篇
kurbylee.
离线
最后一次露面:3年4个月前
加入:2014-11-05 09:10
GPIO的ISR永远不会被嘲笑

void ext_wakeup_enable(uint32_t端口,uint32_t pin,uint8_t极性)
{
rwip_env.ext_wakeup_enable = 2;
#if development_debug.
Letail_GPIO(ext_wakeup_gpio,(gpio_port)端口,(gpio_pin)pin,pid_gpio);
#万一
if(极性== 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 <何时活动低电平,为什么将最后一个param设置为false?在注释中,GPIO_CONFIGUREPIN如下所示:
*争论:端口 - GPIO端口
* PIN - PIN
*模式 - 引脚模式(输入,输出......)
*功能 - PIN用法(GPIO,UART,SPI ......)
*高 - 设置为true,将引脚设置为高电平
2>如果我gpio_getpinstatus这个垫,我会得到高或低?

3>我使用自定义按钮(Port1,Pin0).i在此焊盘上有外部上拉托纹(10k),按下按钮,然后绑定到GND。
在set_pad_functions:
gpio_configurepin(gpio_button_port,gpio_button_pin,输入,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引脚状态切换到高或低。
if(gpio_getpinstatus(LED_PORT,LED_PIN))GPIO_SETINACTION(LED_PORT,LED_PIN);
否则gpio_setactive(LED_PORT,LED_PIN);
似乎Push_Button_Handler从未促使。我确定我可以在Push_Button_Handler ISR外面的LED中CTRL CTRL。

是否有任何其他步骤可以为按钮设置GPIO,我忘了添加?
THS。

设备:
SMDZJL007.
离线
最后一次露面:3年8个月前
加入:2015-08-04 15:07
嗨先生/女士,

嗨先生/女士,

在DA14580自定义板开发期间,我遇到了一个奇怪的问题。我想使用UART1接口进行外部通信。设置相关引脚映射后,我可以成功从外部PC HiperMinal接收数据,但我不能将任何数据从DA板发送到外部PC。通过仔细调试,我看到以下功能从未调用“系统”,除了app_ble_push调用uart_tx_callback actimelly,因此数据永远不会发送UART和CallbackBusy从未设置为false。你能帮我检查什么原因吗?非常感谢!

静态void UART_TX_CALLBALL(UINT8_T RES)
{
//在未运行时从UART传输ISR或应用程序调用函数
if(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发送数据
if(size> 0)
{
UART_SPS_WRITE(TX_WRITE_POINTER,SIZE,&TX_STATE_PTR,&UART_TX_CALLBALL);
返回;
}

//如果没有数据,但只有流量控制只需将流量控制发送给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;
}

布罗尔,
张。