问答

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

木木guainv

TA的家园币:949  

  • 华大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

  • 有没人遇到LKS05系列,掉电实验出现程序飞掉的

    有没遇到反复掉电存储,实验不到一万次出现程序飞掉的。完全不能读取FLASH了,整个系统瘫痪必须强制擦除后重新写入方可工作。有没什么好的解决方案。

    求助

    2023-03-22 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是否有注意的地方?

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

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

  • 请教兆易FAE关于GD32E505RBT6 SHRTIME占空比丢失问题

    我在使用SHRTIME配置互补带死区的PWM时发现在输出PWM存在占空比丢失问题。在官方给的例程中也发现有同样问题。请求技术支持或单片机大牛帮忙分析分析。

    国产芯片 MUC DSP 嵌入式

    2022-03-06 27
  • GD32F150R8T6对应stm32哪个型号

    有没有同学把gd32工程迁移到Linux平台,用makefile组织工程。到链接阶段,总是报错,经高人指点可能是makefile或者链接脚本的问题,make脚本应该问题不大,拿别人的工程改的,就改了文件路径而已,把头文件,源文件路径改为自己的,其他的啥都没动。我怀疑是链接脚本问题。想参考相对应的stm32链接脚本

  • 华大HC32L136系列单片机 正交编码器有谁用过

    最近要使用定时器的正交编码器功能,手册也看过几遍,着手要试一下,却发现不知道该如何操作,请问有谁使用过华大的HC32L136系列的正交编码器功能呢,希望指点一下。另外手册中16.2.7中介绍正交编码器计数功能的时候说MSCR.SMS是用来选择编码器模式的,但是在后面的寄存器介绍中找到了MSCR这个寄存器,但是没有找到相关的位。

  • STM32串口通信控制电机

    我想用串口通信来控制无刷电机,串口代码借用正点原子,目前串口可以接收到发送的指令,但是不能控制电机,希望有前辈帮我解答一下,附上主函数代码intmain(void){u8t;//typedefunsignedcharuint8_t;u8len;u16times=0;//typedefunsignedshortuint16_t;volatileunsignedcharHALL_flag;LED_Init();delay_init();uart2_init(9600);//串口初始化为9600PWM_GPIO_Init();HALL_GPIO_Init();LED1=1;while(1){if(USART_RX_STA&0x8000){len=USART_RX_STA&0x3fff;printf("\r\n您发送的消息为:\r\n");for(t=0;tDR=USART_RX_BUF[t];while((USART2->SR&0X40)==0);}printf("\r\n\r\n");//插入换行USART_RX_STA=0;if(strcmp((char*)USART_RX_BUF,"电机1正转")==0){HALL_flag=1;BLDC_CW();printf("\r\n行走电机正转\r\n");}if(strcmp((char*)USART_RX_BUF,"电机1停止")==0){HALL_flag=0;BLDC_STOP();printf("\r\n行走电机停止\r\n");}}else{times++;if(times%5000==0){printf("\r\nALIENTEKMiniSTM32开发板串口实验\r\n");printf("正点原子@ALIENTEK\r\n\r\n\r\n");}if(times%200==0)printf("请输入数据,以回车键结束\r\n");if(times%30==0)LED1=!LED1;//闪烁LED,提示系统正在运行.delay_ms(10);}}}

  • 结构体按位对齐后的赋值

    本帖最后由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]};这样赋值不行吗

    ig struct AC ck typedef structs

    2021-04-17 14
  • PIC16LF876A无法编程

    主频8Mhz或16Mhz,使用的PCKIT3.5,已排除接线等故障,显示thefollowingmemoryregionsfailedtoprogramcorrectly:programmemoryAddress:00000001expectedvalue0000118areceivedvalue:00000000programmingfailed.请问各位专家,此故障是什么原因所致,如何克服,谢谢!

  • 为何GD32E103最新的固件库中CAN相关的都没有了

    最近使用GD32E103的can,使用的1.0.0的固件库发现在CAN和CANFD混用的时候相关操作函数有些BUG,然后下载了1.2.0的库发现can相关的东西完全没有了

    CAN 固件库 BUG 函数 UG

    2021-01-09 4
  • 24LC64丢失数据

    我公司使用MICROCHIP24LC64-I/SN,数量13000多个,目前有几百个有数据丢失的现象。使用的地址范围是前面1K字节内,后面的地址没有用到。已发现0xE0--0xE5,0xF6--0x12A,0x12D等位置出现问题,现象是正常写完数据后立刻读出刚写的数据,写入的与读出的数据一致,没有问题,连续读取多次会出现读出的数据已经变化,板件即时重新上电也不会恢复。出问题的地址是个别位发生反转。有些板件正常写完数据后断电2分钟再上电发现读出的数据会变化,有些板件断电5分钟才变化,有些10分钟后变化.请各位大师帮忙分析下,不胜感激!使用特权更多操作

    断电 Chip Micro Microchip ip

    2020-12-26 52
  • 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下一页