问答

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

木木guainv

TA的家园币:687  

  • 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 53
  • mplab X5.45

    安装后前几次打开中文显示正常,过几天打开就不正常了,刚开始搞微芯平台,求救

    Lab mplab 微芯

    2020-12-19 7
  • 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

  • HC32F460JETA-LQFP48 Usart 是哪些引脚

    HC32F460JETA-LQFP48Usart是哪些引脚

    USART 引脚 lqfp48 hc32f460

    2020-12-05 6
  • 如何读取USB触摸驱动板配置数据?

    本帖最后由nhb2318于2020-11-2700:02编辑大家好,我买了一个USB接口电容触摸屏驱动板控制卡,芯片是GD32F103的,是这个样子的这个控制卡的一端接USB,一端接6P的触摸屏,接好以后,把USB插到电脑上,触摸屏就可以控制电脑了。不过买的时候卖家已经把触摸屏的分辨率写到芯片里了,现在我换了一个触摸屏,接上电脑发现触摸时候方向不对,手指向右滑,电脑光标是向下,手指向下滑,电脑光标是向右,彻底乱了,我问卖家是怎么设置的,他也不告诉我。请问各位高手帮帮忙,看看通过什么软件能读取其中的配置,然后进行设置,谢谢了!

  • SPI在SLAVE模式下,速度为什么只能到2M

    芯片用的是STM32G070芯片,因为项目需要用SPI1做SLAVE模式跟外部通讯,用STM32CUBEMX生成的代码。通讯波特率只能到2M,再高就通讯不正常,看手册可以到16M的。时钟,引脚时钟都设置最高频率,不知道是软件还是硬件问题。请问大家有没有用STM32的spi,在slave模式下最高波特率能到多少?

    slave spi STM STM32 ST

    2020-09-30 11
  • 是下位机的程序处理问题,还是上位机的问题

    我用官网的库例程编了个虚拟串口+HID,分别用F1、F3和F4的板子都实现了,但是发现一个问题,之前调试的时候也有注意到,但没在意:1.连接后,成功驱动,PC端串口助手打开对应的串口号,和设备通讯无误。但是如果一旦设备出问题,比如进入了死循环,如果此时PC端的串口助手点击关闭串口,串口助手就会卡死,必须重启下位机或者拔掉USB。2.串口助手打开对应的串口号,拔掉USB,然后再连上,无法和硬件串口一样能继续正常通信,中途串口助手不点击关闭串口。3.串口助手关闭串口后,必须有一次释放串口的过程,比如重启下位机,插拔USB,这样串口助手才能再次打开原来的串口,这也和硬件串口不同对于以上3点疑问,我想请教,是下位机的程序处理问题,还是上位机的问题?

  • 电路里面Sinking Output怎么翻译比较好

    电路里面SinkingOutput怎么翻译比较好

    Output TPU 电路 go

    2020-09-29 15
  • 改成正常模式下不好用

    STM32F10364引脚,CAN程序在环回模式下好用,但改成正常模式下不好用,不知道还注意些什么

    CAN can程序 ST stm32f10 STM32F1

    2020-09-29 29
12下一页