问答

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

磨砂

TA的家园币:3213  

  • 关于FOC噪音和效率比

    单电阻首先排除,因为单电阻低速声音较大双电阻无感,三电阻无感,双电阻有感,三电阻有感。各有什么优缺点,有没有大佬指点一下的

    有感 电阻 噪音 FOC LKS32

    2024-09-27 6
  • GD32F303 SPI DMA 条件下如何配置8位的CRC

    如题GD32F303SPIDMA条件下如何配置8位的CRC,我的配置如下voidSpi1_init(){spi_parameter_structspi_init_struct;/*deinitilizeSPIandtheparameters*/spi_i2s_deinit(SPI1);spi_struct_para_init(&spi_init_struct);rcu_periph_clock_enable(RCU_GPIOB);rcu_periph_clock_enable(RCU_SPI1);rcu_periph_clock_enable(RCU_AF);/*configureSPI1GPIO:NSS/PB12,SCK/PB13,MISO/PB14,MOSI/PB15*/gpio_init(GPIOB,GPIO_MODE_AF_PP,GPIO_OSPEED_MAX,GPIO_PIN_13|GPIO_PIN_15);/*SPI1GPIOconfig:SCK/PB13,MOSI/PB15*/gpio_init(GPIOB,GPIO_MODE_IN_FLOATING,GPIO_OSPEED_MAX,GPIO_PIN_14);/*SPI1GPIOconfig:MISO/PB14*/gpio_init(GPIOB,GPIO_MODE_OUT_PP,GPIO_OSPEED_MAX,GPIO_PIN_12);/*PB12asCS*/SPI1_CS_H;spi_init_struct.trans_mode=SPI_TRANSMODE_FULLDUPLEX;spi_init_struct.device_mode=SPI_MASTER;spi_init_struct.frame_size=SPI_FRAMESIZE_8BIT;spi_init_struct.clock_polarity_phase=SPI_CK_PL_LOW_PH_1EDGE;//SPI接口逻辑在时钟极性(CPOL)=0和时钟相位(CPHA)=0的情况下运行spi_init_struct.nss=SPI_NSS_SOFT;//注意SPI_NSS_HARD是指外部的CS也就是说对从机有效主机应该使用SPI_NSS_SOFTspi_init_struct.prescale=SPI_PSC_32;spi_init_struct.endian=SPI_ENDIAN_MSB;//大端spi_init(SPI1,&spi_init_struct);/*setcrcpolynomial*/spi_crc_polynomial_set(SPI1,7);spi_crc_on(SPI1);/*enableSPI1*/spi_enable(SPI1);}我使用了,可是实际上示波器没有监测到下发的正常校验结果spi_crc_polynomial_set(SPI1,7);spi_crc_on(SPI1);发送数据填充{Afex->Spi_Txbuf[0]=Afex->Aevaddr;Afex->Spi_Txbuf[1]=0xFF;//Afex->Spi_Txbuf[2]=CRC8(Afex->Spi_Txbuf,2);AFE1_CS_L;SPI1_TransmitReceiveDma(Afex->Spi_Txbuf,Afex->Afe_Rxbuf,2);AFE1_CS_H;}//DMA数据填充和发送使能等这里用了个信号量阻塞uint8_tSPI1_TransmitReceiveDma(cons

    GD32F303 CRC spi DMA

    2024-08-08 18
  • GD32F4xxDemo_Suites中的 IAR工程的.icf文件可用ST的代替吗?

    GD32F4xxDemo_Suites中的IAR工程的.icf文件在哪里可以找到?可用ST的代替吗?

    ITE ui ST ic gd32f4xx demo

    2024-04-26 19
  • PIC16F72 的ASM源码编译错误

    本帖最后由大大的木头于2023-11-2715:25编辑如题,编译出错。output如下:是缺少P16F72.INC文件吧,能提供一下吗?其它还有什么问题?感谢!

    2023-11-27 10
  • 华大HC32L130J8TA,UART1+DMA功能正常,换成UART0就用不了了,什么原因?

    本帖最后由breakP于2023-11-210:27编辑直接用的例程,这是UART1+DMA可以正常使用,但是换成UART0就不行了,接线,参数都检查过了int32_tmain(void){//uart端口配置App_UartPortInit();//UART模块配置App_UartCfg();//DMA参数配置App_DmaCfg();while(1){if(5==Dma_GetStat(DmaCh0))//完成一次通道传输(UART1_RX->RAM缓存2字节){Dma_DisableChannel(DmaCh0);//禁用通道0delay10us(100);Dma_EnableChannel(DmaCh1);//使能通道1Dma_ClrStat(DmaCh0);//清除通道0状态值}if(5==Dma_GetStat(DmaCh1))//完成一次通道传输(RAM缓存->UART1_TX2字节){Dma_DisableChannel(DmaCh1);//禁用通道1Dma_EnableChannel(DmaCh0);//使能通道0Dma_ClrStat(DmaCh1);//清除通道0状态值}}}//UART模块配置voidApp_UartCfg(void){stc_uart_cfg_tstcCfg;stc_uart_baud_tstcBaud;DDL_ZERO_STRUCT(stcCfg);//初始化变量DDL_ZERO_STRUCT(stcBaud);//初始化变量Sysctrl_SetPeripheralGate(SysctrlPeripheralUart1,TRUE);//使能UART1外设时钟门控开关stcCfg.enRunMode=UartMskMode1;//模式3stcCfg.enStopBit=UartMsk1bit;//1位停止位stcCfg.stcBaud.u32Baud=9600;//波特率9600stcCfg.stcBaud.enClkDiv=UartMsk8Or16Div;//通道采样分频配置stcCfg.stcBaud.u32Pclk=Sysctrl_GetPClkFreq();//获得外设时钟(PCLK)频率值Uart_Init(M0P_UART1,&stcCfg);//串口初始化Uart_ClrStatus(M0P_UART1,UartRC);//清接收请求Uart_ClrStatus(M0P_UART1,UartTC);//清发送请求Uart_EnableFunc(M0P_UART1,UartDmaTxFunc);//使能DMA发送,DMA相关通道使能后,如果TxBuff为空,会立马启动传输Uart_EnableFunc(M0P_UART1,UartDmaRxFunc);//使能DMA接收}//DMA参数配置voidApp_DmaCfg(void){stc_dma_cfg_tstcDmaCfg;DDL_ZERO_STRUCT(stcDmaCfg);//初始化变量Sysctrl_SetPeripheralGate(SysctrlPeripheralDma,TRUE);//使能DMAC外设时钟门控开关//rxdma配置stcDmaCfg.u32SrcAddres

  • J-LINK如何支持GD32

    本帖最后由ee230于2022-4-1116:13编辑请教版主,以及各位同道中人:开发一款GD32F303的程序,原先电脑有安装j-link5.12版本,但这个版本不支持GD32.现在就想让j-link支持这款GD32,功能包括j-flash,j-link调试(IAR)。大概有2种方法:1.在j-link5.12版本上打个补丁,支持GD322.更新j-link到最新版本(我看segger官方最新的应该支持)方法1是否有解?使用j-link是否有注意的地方?

  • SH79F1611软件开发是用寄存器还是库函数

    有做过这方面的大佬,有加VX交流吗?可以有尝

  • 遇到一个GD32E230C8T6奇怪的问题(初次上电无法启动)

    这个电路之前用的是STM32G0C8T6,工作的一直没问题,最近发现GD32E230C8T6非常便宜就打样几块板回来,只更换了单片机,其他一个器件没动;现在遇到一个从没遇到过的问题:1)完全断电的情况下,第1次上电无法启动,硬件复位也不行,只能重新断电再上电就正常启动,启动后,然后运行也没问题;2)短时间断电(电容电未放完)的情况下重新上电也能启动;手动给电容放电后,再上电第一次也无法启动;电路也比较简单,就锂电池供电,1路LDO3.3V供MCU和外设,一路LDO供TM1628A,搞了几天天,各种器件拆拆补补也没解决问题。程序使用的内部IRC8M,没焊外部8M晶振,希望大家帮忙一起排查一下,谢谢!尝试办法:用示波器测试了MOS开关,3.3V没有毛刺,有1K+0.1uF的缓启动电路;复位也尝试改为1uF+10K,问题也依旧,找不到方法了

    国产芯片 单片机

    2022-04-06 11
  • dsp33ep512 mplabx xc16 程序报错

    本帖最后由pzsh于2022-4-2011:01编辑报这个错误,内存50k的内存,才用了20多k。build/default/production/_ext/812168374/rel_ratiodiff.o:LinkError:Couldnotallocatesection.bss,size=96bytes,attributes=bssbuild/default/production/_ext/812168374/sam_interrput.o:LinkError:Couldnotallocatesection.bss,size=90bytes,attributes=bssbuild/default/production/_ext/812168374/Base_DO.o:LinkError:Couldnotallocatesection.bss,size=40bytes,attributes=bssbuild/default/production/_ext/1239188649/timer.o:LinkError:Couldnotallocatesection.bss,size=36bytes,attributes=bssbuild/default/production/_ext/812168374/Fun_SelfCheck.o:LinkError:Couldnotallocatesection.bss,size=30bytes,attributes=bssbuild/default/production/_ext/812168374/CommStruct.o:LinkError:Couldnotallocatesection.bss,size=20bytes,attributes=bss

    2022-04-02 8
  • N76E003 PWM如何捕获占空比

    我在使用n76e003做占空比捕获的时候,发现频率5K占空比0.1%的时候捕获会出错误。有没有大佬有成熟的占空比捕获的程序给我参考一下。

    MUC 国产芯片

    2021-12-10 10
  • NUC972配置管脚输出高频时钟CLK_OUT异常

    最近学着使用NUC972,使用GPIO可以点亮LED,但是无法输出CLK_OUT,这个是怎么回事?求助voidclk_out_config(clk_freqFREQ){setReg32(REG_CLK_PCLKEN0,getReg32(REG_CLK_PCLKEN0)|(1

    新唐 972 单片机 时钟 输出

    2021-12-10 11
  • GD32F305VG timer0输入捕获无反应

    各位大佬好!我按照GD32F30x的标准库配置了GD32F305VG的timer0定时器并开启了输入捕获功能,配置代码如下:voidtimer_config(void){/*-----------------------------------------------------------------------timer_parameter_structtimer_initpara;timer_ic_parameter_structtimer_icinitpara;rcu_periph_clock_enable(RCU_TIMER0);timer_deinit(TIMER0);/*NVICconfig*/nvic_irq_enable(TIMER0_UP_TIMER9_IRQn,1,1);nvic_irq_enable(TIMER0_Channel_IRQn,1,0);/*TIMER0configuration*/timer_initpara.prescaler=119;timer_initpara.alignedmode=TIMER_COUNTER_EDGE;timer_initpara.counterdirection=TIMER_COUNTER_UP;timer_initpara.period=999;timer_initpara.clockdivision=TIMER_CKDIV_DIV1;timer_initpara.repetitioncounter=0;timer_init(TIMER0,&timer_initpara);timer_icinitpara.icpolarity=TIMER_IC_POLARITY_RISING;timer_icinitpara.icselection=TIMER_IC_SELECTION_DIRECTTI;timer_icinitpara.icprescaler=TIMER_IC_PSC_DIV1;timer_icinitpara.icfilter=0x0;timer_input_capture_config(TIMER0,TIMER_CH_0,&timer_icinitpara);timer_input_capture_config(TIMER0,TIMER_CH_3,&timer_icinitpara);/*auto-reloadpreloadenable*/timer_auto_reload_shadow_enable(TIMER0);timer_interrupt_flag_clear(TIMER0,TIMER_INT_FLAG_CH0);timer_interrupt_flag_clear(TIMER0,TIMER_INT_FLAG_CH3);timer_interrupt_enable(TIMER0,TIMER_INT_CH0);timer_interrupt_enable(TIMER0,TIMER_INT_CH3);timer_interrupt_enable(TIMER0,TIMER_INT_UP);timer_enable(TIMER0);}/*中断服务程序*/voidTIMER0_UP_TIMER9_IRQHandler(void){if(timer_interrupt_flag_get(TIMER0,TIMER_INT_FLAG_UP)!=RESET){timer_interrupt_flag_clear(TIMER0,TIMER_INT_FLAG_UP);timer0tick++;}}voidTIMER0_Channel_IRQHandler(){if(timer_interrupt

  • PIC12F1501中的比较器在初始化完成之前是否就已经开始工作

    MCU:PIC12F1501,使用PIN6作为比较器的输入,门限值是1.024v,用于保护检测;初始化最后delay10ms,从MCU供电5v(5v电压建立时间是500us)开始到初始化结束PIN6的电压没有超过1.024v,但在此期间还是会触发比较器动作,进入保护,保护周期结束后才能正常工作。请问PIC的比较是否在初始化完成之前就已经工作了?供电电压5V建立的过程中由于门限值并没有达到1.024v,所以触发了比较器动作??谢谢

  • 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

    2020-12-17 8
  • stm32l476移植鸿蒙系统求助

    本帖最后由walker2048于2020-12-1510:17编辑本人菜**一只,尝试着移植鸿蒙2.0系统到stm32l476rg_nucleo开发板。现在碰到一些问题,想问下论坛里的大佬是否可以给点提示,非常感谢。环境配置描述:目前已完成至设置好clang+gcc工具链(最后ld时使用arm-none-eabi-gcc)配置,编译参数根据cubeMX生成的makefile文件修改好了。该工具链与编译参数使用在cubeMX生成的标准程序里可正常运行(点灯OK,延时500毫秒OK,printf重定向串口输出OK)。---------------------------参数设置如下defines=-DUSE_HAL_DRIVER-DSTM32L476xxasmflags=-mcpu=cortex-m4-mthumb-mfpu=fpv4-sp-d16-mfloat-abi=hard#-fshort-enums-targetarm-none-eabi这两个参数是clang用的cflags=-mcpu=cortex-m4-mthumb-mfpu=fpv4-sp-d16-mfloat-abi=hard-fshort-enums-targetarm-none-eabi-fPICcflags_c=-Og-Wall-fdata-sections-ffunction-sections-g-gdwarf-2ldflags=-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---------------------------问题描述如下,mcu的时钟定义设置为最高速80M,在cubeMX生成的标准程序里(不管是gcc编译或者clang编译),SystemCoreClock可顺利更新为80M,程序正常。但是在移植到鸿蒙的代码中,HAL库无法更新SystemCoreClock变量,不管是如何修改cubeMX的时钟定义(降频改配置,修改UART2时钟信号源),均无法正常运行点灯与串口输出功能,HAL_Delay功能也出错。目前判断是只要使用到SystemCoreClock变量的,都会出错。自己在单步调试中将SystemCoreClock变量赋值为80M,也无法正常运行程序。--------------------------想求助一下论坛里的大佬,是否能帮忙看一下到底是什么地方有问题。源码地址附上:https://gitee.com/walker2048/hmos_iot,请切换到clang_stm32

12下一页