问答

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

21ic问答首页 - TAG - IO
  • N32G432CB不能Debug sos

    [i=s] 本帖最后由 北凉 于 2024-6-7 09:29 编辑 [/i] void FLASH_Unlock();在我的操作系统里使用这个函数的时候直接会导致我无法进入Debug,并且不知道是不是因为这个原因导致我第一次下载完程序以后我就不能第二次从Keil里面直接下载程序了。出问题的时候提示说检测不到芯片,这里我没有将PA13和PA14也就是SWDIO和SWCLK引脚复用成普通IO口并且我没使用这两个GPIO口连接任何外部器件,只是将引脚通过接插件引出来了。 这个问题我是在配置GPIO口的时候增加了一条将PA13和PA14复用成SW下载口,因此没有在提示我找不到芯片。 但是Debug会有一个错误弹窗说是Could not stop Cortex-M device! Please check the JTAG cable. 我用的是创芯工坊下载器的SW接口。 我目前能Debug,但是我的解决方法是把n32g43x_flash.c文件下面的Flash解锁函数中的其中一个FLASH->KEYR = FLASH_KEY1;给注释了。下面是我在程序上的操作,这么做不对但是我应该怎么解决这个问题。 求大佬们帮帮忙。 void FLASH_Unlock(void) { /* Unlocks the FLASH Program Erase Controller */ FLASH->KEYR = FLASH_KEY1; //FLASH->KEYR = FLASH_KEY2; } 这两个至少禁用一个我就能进debug了。

    ck PA IO flash N32G432CB不能Debug

    305浏览量 0回复量 关注量
  • GD32F303问题

    问题背景是这样的: 配置了一个20Khz的定时器溢出中断,System_cnt_add()函数是对一个变量++,就是创建了一个时间基准。然后在Task_time_slice_function()函数里面实现了一个led每0.5s翻转的任务。 于是遇到了这样一个问题: 当我把这个Task_time_slice_function()函数放在中断的时候,led能够正常实现每0.5s翻转的操作,也就是输出一个1Hz的方波。但是当我把Task_time_slice_function()函数放在main函数的while循环里面时,功能就失效了,变成输出32Hz的方波。有没有人知道怎么回事,希望能指点一下,谢谢!

    GD32F303 TI 函数 IO ic ICE

    935浏览量 1回复量 关注量
  • 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

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

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

    充电芯片 IO 信号 单片机

    19432浏览量 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

    1426浏览量 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

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

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

    电压 IO

    1546浏览量 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

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

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

    Android ios os IO AN

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

    ios对比Android的优势有哪些

    Android ios os IO AN

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

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

    ios 苹果 os IO ios14

    706浏览量 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

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

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

    NUC wifi模块 sd IO 内核

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

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

    IO 触发 电路 电平 电机启动

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

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

    PWM IO 管脚 vi 单片机

    841浏览量 2回复量 关注量