问答

汇集网友智慧,解决技术难题

21ic问答首页 - TAG - IO
  • HC32L110C6UA端口中断问题

    华大HC32L110C6UA芯片配置P03端口输入下降沿中断,一旦触发中断就会一直进入端口中断,有对M0P_GPIO->P3ICLR写入0操作,并读取M0P_GPIO->P3ICLR和M0P_GPIO->P0STAT_f 寄存器发现值并没有变化。不知道是有哪里没有设置好,各位大神帮忙看看!如下是程序过程: void Gpio_IRQHandler(uint8_t u8Param){ uint32_t read_stat=0; switch(u8Param) { case 0: { } break; case 1: { } break; case 2: { } break; case 3: { } break; default:; break; } *((uint32_t *)((uint32_t)&M0P_GPIO->P3ICLR + u8Param * 0x40)) = 0; read_stat=*((uint32_t *)((uint32_t)&M0P_GPIO->P3ICLR + u8Param * 0x40)); read_stat=*((uint32_t *)((uint32_t)&M0P_GPIO->P0STAT_f + u8Param * 0x40)); } int32_t main(void) { Gpio_InitIOExt(0, 3, GpioDirIn, FALSE, FALSE, FALSE, FALSE); Gpio_ClearIrq(0, 3); //上升沿 Gpio_EnableIrq(0, 3, GpioIrqFalling); EnableNvic(PORT0_IRQn, DDL_IRQ_LEVEL_DEFAULT, TRUE); while(1) { } }

    hc32l110 端口 IO gp GPIO

    618浏览量 2回复量 关注量
  • 各位大神,一个IO口如何检测充电芯片的各种状态 赏100家园币

    [i=s] 本帖最后由 21562644322 于 2020-12-23 19:10 编辑 [/i] 如图,一个单片机IO口(可内部上下拉)检测4056的CHRG信号(充电时低,常态及充满为高阻态),需要做唤醒、判断插入充电、判断充满、判断拔出,如何实现,求解

    充电芯片 IO 信号 单片机

    18800浏览量 6回复量 关注量
  • stm8s003 的 I/O口自动变成低电平

    使用stm8s003的PD2,PD3,PC7当成普通的按键输入检测端口,端口设置为内部上拉,并且在每个端口直接接了一个104p电容到地。现在线路板做通电48小时老化测试,有2%的线路板有误动作,不是上电的时间产出误动作,没有规律,有时候几个小时,有时候几十个小时才会出现。检查都是输入端口变为了低电平(只有按下按键,端口才会是低电平)怀疑104漏电,拆下单独测试电容是好的,焊回到线路板又好了,电容会时好时坏吗? GPIO_Init(GPIOC, GPIO_PIN_7, GPIO_MODE_IN_PU_NO_IT);//PC7上拉输入 GPIO_Init(GPIOD, GPIO_PIN_LNIB, GPIO_MODE_IN_PU_NO_IT);//PD0-PD3上拉输入

    STM8S003 I/O 电平 pi IO

    941浏览量 8回复量 关注量
  • stm32l476移植鸿蒙系统求助

    [i=s] 本帖最后由 walker2048 于 2020-12-15 10:17 编辑 [/i] [align=left][align=left]本人菜**一只,尝试着移植鸿蒙2.0系统到stm32l476rg_nucleo开发板。现在碰到一些问题,想问下论坛里的大佬是否可以给点提示,非常感谢。[/align][align=left]环境配置描述:[/align][align=left]目前已完成至设置好clang+gcc工具链(最后ld时使用arm-none-eabi-gcc)配置,编译参数根据cubeMX生成的makefile文件修改好了。该工具链与编译参数使用在cubeMX生成的标准程序里可正常运行(点灯OK,延时500毫秒OK,printf重定向串口输出OK)。[/align][align=left]---------------------------[/align][align=left]参数设置如下[/align][align=left]defines = -DUSE_HAL_DRIVER -DSTM32L476xx[/align][align=left]asmflags = -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard[/align][align=left]# -fshort-enums -target arm-none-eabi 这两个参数是clang用的[/align][align=left]cflags = -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fshort-enums -target arm-none-eabi -fPIC[/align][align=left]cflags_c = -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2[/align][align=left]ldflags = -T ../../vendor/st/board/stm32l476rg/STM32L476RGTx_FLASH.ld -lc -lm -lnosys -specs=nano.specs -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2[/align][align=left]---------------------------[/align][align=left]问题描述如下,mcu的时钟定义设置为最高速80M,在cubeMX生成的标准程序里(不管是gcc编译或者clang编译),SystemCoreClock可顺利更新为80M,程序正常。但是在移植到鸿蒙的代码中,HAL库无法更新SystemCoreClock变量,不管是如何修改cubeMX的时钟定义(降频改配置,修改UART2时钟信号源),均无法正常运行点灯与串口输出功能,HAL_Delay功能也出错。目前判断是只要使用到SystemCoreClock变量的,都会出错。自己在单步调试中将SystemCoreClock变量赋值为80M,也无法正常运行程序。[/align][align=left]--------------------------[/align][align=left]想求助一下论坛里的大佬,是否能帮忙看一下到底是什么地方有问题。[/align][align=left]源码地址附上:https://gitee.com/walker2048/hmos_iot,请切换到clang_stm32分支。[/align][align=left]编译时需要LLVM,arm-none-eabi-gcc,gn,ninja工具,以及python3.7以上环境。Debug时需要Openocd和arm-none-eabi-gdb。[/align][align=left]编译命令为python build.py stm32l476rg_nucleo(在源码根目录执行)。[/align][align=left]如果大家懒得搭编译环境,可以使用我创建好的Docker镜像(arm-none-eabi-gcc工具链需要自行下载配置)[/align][align=left]镜像运行命令:docker run -it --name build -v "D:/hmos_iot":"/mnt" walker2048/hm_build:slim_iot[/align][/align]

    鸿蒙系统 移植 STM32L476 TE IO

    7262浏览量 12回复量 关注量
  • 如何通过普通IO口检测2.5V与5V电压

    如何通过普通IO口检测2.5V与5V电压

    电压 IO

    1064浏览量 6回复量 关注量
  • 关于GD32F450串口irDA收发以及串口配置问题

    最近在做一个关于串口irDA的红外通信模块,GD32F450做串口初始化的时候 我使能了串口收发以及红外功能,但是数据能发不能接收是怎么一回事呢?不知道有没有大佬用过GD 的irDA??串口初始化代码如下: void gd_eval_com_init(uint32_t com) { /* enable GPIO clock */ uint32_t COM_ID; if(EVAL_COM1 == com) { COM_ID = 0U; } rcu_periph_clock_enable( EVAL_COM_GPIO_CLK); /* enable USART clock */ rcu_periph_clock_enable(COM_CLK[COM_ID]); /* connect port to USARTx_Tx */ gpio_af_set(EVAL_COM_GPIO_PORT, EVAL_COM_AF, COM_TX_PIN[COM_ID]); /* connect port to USARTx_Rx */ gpio_af_set(EVAL_COM_GPIO_PORT, EVAL_COM_AF, COM_RX_PIN[COM_ID]); /* configure USART Tx as alternate function push-pull */ gpio_mode_set(EVAL_COM_GPIO_PORT, GPIO_MODE_AF, GPIO_PUPD_PULLUP,COM_TX_PIN[COM_ID]); gpio_output_options_set(EVAL_COM_GPIO_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,COM_TX_PIN[COM_ID]); /* configure USART Rx as alternate function push-pull */ gpio_mode_set(EVAL_COM_GPIO_PORT, GPIO_MODE_AF, GPIO_PUPD_PULLUP,COM_RX_PIN[COM_ID]); gpio_output_options_set(EVAL_COM_GPIO_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,COM_RX_PIN[COM_ID]); /* USART configure */ usart_deinit(com); usart_baudrate_set(com,115200U); usart_stop_bit_set(com, USART_STB_1BIT); usart_receive_config(com, USART_RECEIVE_ENABLE); usart_transmit_config(com, USART_TRANSMIT_ENABLE); // usart_irda_lowpower_config(com, USART_IRLP_NORMAL); usart_irda_mode_enable(com); usart_enable(com); /* USART interrupt configuration */ nvic_irq_enable(UART3_IRQn, 1, 1); /* enable USART0 receive interrupt */ usart_interrupt_enable(UART3, USART_INTEN_RBNEIE); // /* enable USART0 transmit interrupt */ // usart_interrupt_enable(USART0, USART_INTEN_TBEIE); }

    串口 GD32F450 COM pi IO

    356浏览量 1回复量 关注量
  • 与Android相比,iOS的缺点有什么?

    与Android相比,iOS的缺点有什么?

    Android ios os IO AN

    313浏览量 1回复量 关注量
  • ios对比Android的优势

    ios对比Android的优势有哪些

    Android ios os IO AN

    278浏览量 1回复量 关注量
  • 苹果 iOS 14 系统更新有哪些隐藏功能?

    苹果 iOS 14 系统更新有哪些隐藏功能?

    ios 苹果 os IO ios14

    278浏览量 2回复量 关注量
  • RM48的GIO问题 sos

    我在测试GIO的时候,程序实现的是在GIOB[1] 或GIOB[0]检测到高电平(3.3v)输入的时候,执行闪灯。 在DEBUG下正常,能够闪灯,但是在实际中 却没有闪灯。 void main(void) { uint32_t RST_status2=4; uint32_t RST_status1=5; uint32_t RST_MON_Int=6; hetInit(); gioInit(); LED8_ON(); //HET_8 LED28_ON(); //HET_28 wait(200000); LED28_OFF(); LED8_OFF(); wait(200000); LED8_ON(); LED28_ON(); wait(2000000); LED8_OFF(); LED28_OFF(); wait(2000000); LED8_ON(); LED28_ON(); wait(2000000); LED8_OFF(); LED28_OFF(); hetPORT1->DSET |= (1< hetPORT1->DSET |= (1< while(1) { RST_status2= gioGetBit(gioPORTB,0); RST_status1= gioGetBit(gioPORTB,1); RST_MON_Int= gioGetBit(gioPORTA,6); if(1== RST_status1|| 1==RST_status2) { uint32_t i=0; for(i=0;i<10;i++) { LED8_ON(); wait(200000); LED8_OFF(); } } RST_status2=0; RST_status1=0; if(1 == RST_MON_Int) { uint32_t j=0; for(j=0;j<20;j++) { LED28_ON(); wait(200000); LED28_OFF(); } } RST_MON_Int=0; } }

    IO ST LED RS AI

    245浏览量 0回复量 关注量
  • NUC980驱动SDIO的WIFI模块失败

    自己画的NUC980板子,板载了AP6181模块,内部为43362,驱动失败。 新唐有没有提供此类WIFI模块的配置方法。 有人用NUC980驱动成功过SDIO的WIFI模块吗,NUC980所提供的内核源码支持哪几种SDIO的WIFI模块?

    NUC wifi模块 sd IO 内核

    1327浏览量 11回复量 关注量
  • 这种外部触发IO电路有啥严重问题不?

    现场反馈说是低电平触发不稳定,得延时几个ms才能稳定捕获,外部触发电缆大概 10米长,周围都是24V的直流电机启动和断开,低电平是触发的一些位置传感器信号

    IO 触发 电路 电平 电机启动

    2419浏览量 10回复量 关注量
  • 散热风扇,3.3v io接到fg和pwm吗

    请教这个风扇调速pwm管脚可以直接接到单片机3.3v IO口吗,fg反馈管脚上拉3k电阻后可以直接接到3.3v IO口吗

    PWM IO 管脚 vi 单片机

    422浏览量 2回复量 关注量