-
电机控制中最常使用的控制算法
如题,主要是用于控制直流电机的
2024-12-06 44 -
关于FOC噪音和效率比
单电阻首先排除,因为单电阻低速声音较大双电阻无感,三电阻无感,双电阻有感,三电阻有感。各有什么优缺点,有没有大佬指点一下的
2024-09-27 6 -
GigaDevice MCU 自己写bootloader烧录程序怎么写?
GigaDeviceMCU想自己写bootloader烧录程序,不知道怎么写。请教各路大神。
2024-07-19 30 -
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
2023-11-02 9 -
gd32l23cct6 硬件i2c 等待TI / RBNE标志位超时
gd32l23cct6芯片在硬件i2c读写过程中会偶尔出现write函数在TI标志位超时跳出,read函数在RBNE标志位超时跳出,TIMEOUT时间测试200ms+,在这两个标志位超时异常跳出导致i2c通信时序缺少stop位,bsy标志位一直位1,i2c再也无法继续通信,一定要通过复位i2c外设才能解决。硬件i2c驱动代码去下intgd32_i2c_write(unsignedcharbus,unsignedshortaddr,unsignedchar*data,unsignedintdata_len){drv_i2c_mgr_t*i2c_mgr=NULL;unsignedinttimeout=DRV_I2C_TIME_OUT;unsignedintidx;if(bus>=DRV_I2C_BUS_MAX){return-1;}i2c_mgr=&s_st_i2c_mgr;if(0==i2c_mgr->is_init){return-1;}/*waituntilI2Cbusisidle*/timeout=DRV_I2C_TIME_OUT;i2c_master_addressing(i2c_mgr->periph,addrperiph,data_len);while(i2c_flag_get(i2c_mgr->periph,I2C_FLAG_I2CBSY)){if((timeout--)==0){return-1;}}/*sendastartconditiontoI2Cbus*/timeout=DRV_I2C_TIME_OUT;i2c_start_on_bus(i2c_mgr->periph);/*waituntilthetransmitdatabufferisempty*/I2C_STAT(i2c_mgr->periph)|=I2C_STAT_TBE;while(!i2c_flag_get(i2c_mgr->periph,I2C_FLAG_TBE)){if((timeout--)==0){return-1;}}for(idx=0;idx<data_len;idx++){/*datatransmission*/timeout=DRV_I2C_TIME_OUT;i2c_data_transmit(i2c_mgr->periph,data);while(!i2c_flag_get(i2c_mgr->periph,I2C_FLAG_TI)){if((timeout--)==0){LOG_DIRECT_ERR("ti\r\n");return-1;}}}timeout=DRV_I2C_TIME_OUT;while(!i2c_flag_get(i2c_mgr->periph,I2C_FLAG_TC)){if((timeout--)==0){return-1;}}/*sendastopconditiontoI2Cbus*/i2c_stop_on_bus(i2c_mgr->periph);/*waituntilstopconditiongenerate*/while(!i2c_flag_get(i2c_mgr->periph,I2C_FLAG_STPDET)){if((timeout--)==0){return-1;}}/*cleartheSTPDETbit*/i2c_flag_clear(i2c_mgr->periph,I2C_FLAG_STPDET);return0;}intgd32_i2c_read(unsignedcharbus,unsignedsh
2023-09-21 11 -
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是否有注意的地方?
2022-04-11 19 -
遇到一个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 -
Bootloader和APP两个项目合并编译问题
按BootloaderGeneratorUser’sGuide中操作分别建立APPPROJECT和BOOTLOADPROJECT,且通过宏定义,将BOOTLOADER中的配置位注释掉,编译后错误为:error:unabletorenametemporary'build/default/production/mcc_generated_files\mcc.i-88103138'tooutputfile'build/default/production/mcc_generated_files\mcc.i':'Permissiondenied'1errorgenerated.(908)exitstatus=1nbproject/Makefile-default.mk:243:recipefortarget'build/default/production/mcc_generated_files/mcc.p1'failedmake[2]:***Error1make[2]:***Waitingforunfinishedjobs....make[2]:Leavingdirectory'E:/mydoc/myProject/my_doc/20220316ForceTest/PRO/20220316TestForce16F18424/20220316TestForce16F18424.X'nbproject/Makefile-default.mk:91:recipefortarget'.build-conf'failedmake[1]:Leavingdirectory'E:/mydoc/myProject/my_doc/20220316ForceTest/PRO/20220316TestForce16F18424/20220316TestForce16F18424.X'nbproject/Makefile-impl.mk:39:recipefortarget'.build-impl'failedmake[1]:***[.build-conf]Error2make:***[.build-impl]Error2不知什么情况?请各路好汉帮助看看,MPLABX5.5。不会贴图啊。
2022-04-06 13 -
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 -
关于PIC32MX250F128B问题
我给PIC32MX250F128B写了一个点亮LED,单片机输出没有任何反应,我把所有引脚输出高电平,外用表测引脚,还是低电平,是不是单片机是假的?但是能烧写进去程序,难道是我的程序由问题?第一次用PIC32单片机。有没有一个示例程序呀
2022-03-02 10 -
GD32f103使用TIMER2+DMA输出问题
本帖最后由zxywq于2022-1-615:27编辑GD32f103使用TIMER2+DMA输出波形每一帧数据的第一个字节的最高位丢失
2022-01-06 7 -
N76E003 PWM如何捕获占空比
我在使用n76e003做占空比捕获的时候,发现频率5K占空比0.1%的时候捕获会出错误。有没有大佬有成熟的占空比捕获的程序给我参考一下。
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
2021-12-10 11 -
结构体按位对齐后的赋值
本帖最后由slf123123于2021-4-1909:13编辑typedefunsignedlongDWORD;#pragmapack(push)#pragmapack(1)typedefstructsi{DWORDa:4;DWORDb:7;DWORDc:3;DWORDd:1;DWORDe:3;DWORDf:14;}si;#pragmapack(pop)如上所示这个结构体对齐后是四个字节然后uint8buff[4];怎么将buff赋值给整个结构体structsisu={buff[0],buff[1],buff[2],buff[3]};这样赋值不行吗
2021-04-17 14