问答

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

jcky001

TA的家园币:10117  

  • 有没有用过TLE5012B的大佬 想请教下角速度的计算方法

    能够从寄存器中读取到数据默认值应该是0的正转增大翻转由7FFF开始减小但是就算把寄存器值为1时带入手册的公式算出来也是128°/s,我觉得这个值应该不是正确的想请教一下这方面的计算方法

  • 多字节SPI从机接收

    单片机作为从机要接收一个24bit的SPI总线数据,CS信号宽度24bit,能用硬件SPI实现吗?

    MCU spi

    2023-12-25 10
  • MM32F103定时器PWM输入捕获失败

    配置代码如下,有个PWM信号需要输入捕获计算频率,经查询数据手册PB11可以复用为TIM2_CH4,但怎么配置都不能正常进捕获中断,IC和PWM方式都试了不行,想问各位大佬该配置有啥问题,有没有什么解决办法/*功能名称IM4_PWMINPUT_INIT(u16arr,u16psc)描述PWM输入初始化*/voidTIM2_PWMINPUT_INIT(u16arr,u16psc){TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;NVIC_InitTypeDefNVIC_InitStructure;TIM_ICInitTypeDefTIM2_ICInitStructure;GPIO_InitTypeDefGPIO_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);//OpenTIM4clockRCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//opengpioBclockGPIO_PinRemapConfig(GPIO_PartialRemap2_TIM2,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);/*配置中断优先级*/NVIC_InitStructure.NVIC_IRQChannel=TIM2_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);TIM_TimeBaseStructure.TIM_Period=arr;//设置在下一个更新事件装入活动的自动重装载寄存器周期的值TIM_TimeBaseStructure.TIM_Prescaler=psc;//设置用来作为TIMx时钟频率除数的预分频值TIM_TimeBaseStructure.TIM_ClockDivision=0;//设置时钟分割:TDTS=Tck_timTIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;//TIM向上计数模式TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);//根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位TIM2_ICInitStructure.TIM_Channel=TIM_Channel_4;TIM2_ICInitStructure.TIM_ICPolarity=TIM_ICPolarity_Rising;TIM2_ICInitStructure.TIM_IC

  • GD32E507V-START USART0 收到数据是乱码

    1购买的GD32E507V-START开办版2使用提供demo程序GD32E50x_Demo_Suites_V1.3.1\GD32E507V_START_Demo_Suites\Projects\04_USART_HyperTerminal_InterruptUSART0的配置:staticvoidusart_config(void){/*enableGPIOclock*/rcu_periph_clock_enable(RCU_GPIOB);/*enableUSARTclock*/rcu_periph_clock_enable(RCU_USART0);/*enableAFclock*/rcu_periph_clock_enable(RCU_AF);/*remapUSART0_TXtoPB6,USART0_RXtoPB7*/gpio_pin_remap_config(GPIO_USART0_REMAP,ENABLE);/*connectporttoUSARTx_Tx*/gpio_init(GPIOB,GPIO_MODE_AF_PP,GPIO_OSPEED_50MHZ,GPIO_PIN_6);/*connectporttoUSARTx_Rx*/gpio_init(GPIOB,GPIO_MODE_IN_FLOATING,GPIO_OSPEED_50MHZ,GPIO_PIN_7);/*USARTconfigure*/usart_deinit(USART0);usart_word_length_set(USART0,USART_WL_8BIT);usart_stop_bit_set(USART0,USART_STB_1BIT);usart_parity_config(USART0,USART_PM_NONE);usart_baudrate_set(USART0,115200U);usart_receive_config(USART0,USART_RECEIVE_ENABLE);usart_transmit_config(USART0,USART_TRANSMIT_ENABLE);usart_enable(USART0);}3把demo中USART0:PB_06接到9针串口线的2脚PB_07接到9针串口线的3脚9针串口线的5脚接到开发板的GND4串口调试助手:收到数据是乱码串口调试助手设置:1152008位数据位1位停止位无校验位无流控请教下各位大佬,为啥是乱码?发送数据是:0x00,......,0xFF;收到数据是:00FDFBF9F7F5F1,......0180

  • GD32E507V开发板 USART0收到数据是乱码

    1使用源码:GD32E50x_Demo_Suites_V1.3.1\GD32E507V_START_Demo_Suites\Projects\04_USART_HyperTerminal_Interrupt\MDK-ARM\GD32E507V_START\程序没有做任何修改;2根据main函数中定义:usart_config();/*enableGPIOclock*/rcu_periph_clock_enable(RCU_GPIOB);/*enableUSARTclock*/rcu_periph_clock_enable(RCU_USART0);/*enableAFclock*/rcu_periph_clock_enable(RCU_AF);/*remapUSART0_TXtoPB6,USART0_RXtoPB7*/gpio_pin_remap_config(GPIO_USART0_REMAP,ENABLE);/*connectporttoUSARTx_Tx*/gpio_init(GPIOB,GPIO_MODE_AF_PP,GPIO_OSPEED_50MHZ,GPIO_PIN_6);/*connectporttoUSARTx_Rx*/gpio_init(GPIOB,GPIO_MODE_IN_FLOATING,GPIO_OSPEED_50MHZ,GPIO_PIN_7);/*USARTconfigure*/usart_deinit(USART0);usart_word_length_set(USART0,USART_WL_8BIT);usart_stop_bit_set(USART0,USART_STB_1BIT);usart_parity_config(USART0,USART_PM_NONE);usart_baudrate_set(USART0,115200U);usart_receive_config(USART0,USART_RECEIVE_ENABLE);usart_transmit_config(USART0,USART_TRANSMIT_ENABLE);usart_enable(USART0);3:外接USB-RS232的9针串口线。PB_6接到9针串口线的2脚PB_7接到9针串口线的3脚9针串口线的5脚连到开发板的GND4打开串口调试工具,接收到数据是乱码;5源程序中的Tx的发送数据是:uint8_ttx_buffer[]={0x00,。。。。,0xFF}问下,是什么原因造成demo收到数据是乱码?

    IO GPIO pi GD32E USART 开发板

    2023-12-13 14
  • 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的方波。有没有人知道怎么回事,希望能指点一下,谢谢!这是用到的几个函数intmain(void){Systemclock_config();nvic_config();gpio_config();spi2_config();timer_config();System_cnt_init();while(1){Task_time_slice_function();}}/*time020kHz*/voidTIMER0_UP_IRQHandler(void){if(SET==timer_interrupt_flag_get(TIMER0,TIMER_INT_UP)){timer_interrupt_flag_clear(TIMER0,TIMER_INT_FLAG_UP);System_cnt_add();}}voidTask_time_slice_function(void){/*1ms*/if(_abs(systemclock_data.systemclock_cnt-systemclock_data.systemclock_lastcnt_1ms)>=systemclock_data.systemclock_cnt_1ms){systemclock_data.systemclock_lastcnt_1ms=systemclock_data.systemclock_cnt;led_main();}/*10ms*/if(_abs(systemclock_data.systemclock_cnt-systemclock_data.systemclock_lastcnt_10ms)>=systemclock_data.systemclock_cnt_10ms){systemclock_data.systemclock_lastcnt_10ms=systemclock_data.systemclock_cnt;}/*100ms*/if(_abs(systemclock_data.systemclock_cnt-systemclock_data.systemclock_lastcnt_100ms)>=systemclock_data.systemclock_cnt_100ms){systemclock_data.systemclock_lastcnt_100ms=systemclock_data.systemclock_cnt;}/*1000ms*/if(_abs(systemclock_data.systemclock_cnt-systemclock_data.systemclock_lastcnt_1000ms)>=systemclock_data.systemclo

    TE GD32F303 ST sy System syste

    2023-12-02 3
  • 请教一个GD32C103的CAN的采样点值与测试结果不一致的问题

    我在使用CAN通讯时,设置的CAN节点波特率为1MHz,采样点为75%,具体配置见图片,但是在使用测试设备测试单个节点的时候,测出的采样点只有35%。请问是我配置有问题吗,除了截图中的配置还有没有要配置的地方,麻烦大佬们答疑解惑,万分感谢!APB1上的时钟频率为60MHz。

  • GD32E230, VREFINT居然每次复位都会变?

    以前用ADC很少用内部基准,都是尽量加一个431什么的,多用一个ADC通道读431再换算这次偷懒用了VREFINT,结果发现每次复位之后ADC采样结果相差挺大,于是单独把VREFINT的值输出到串口再换算成电压试试.一看吓一跳,标称1.2V,最低只有1.138V左右,最高1.207V左右,每次复位都不一样,复位之后倒是挺稳定的.是我哪里设置得不对吗?还是这东西就这样...

    2023-11-16 99
  • 关于串口DMA等待传输完成卡死的问题

    型号AT32F407,在USART2DMA发送数据时,接包已经接到了要发送的数据,但是程序还是处于等待传输完成的标识判断中,卡死了。请教一下是什么造成的?

  • GD32F407 SPI数据异常

    配置GPIOA的567作为SPI0的数据通信,发现每次接收到的数据都是0,示波器测量SPI_CS引脚,发现CS没有完全被拉低就已经被拉高了,飞线到GPIOB的3、4、5作为SPI0,相同的程序,只是修改了IO口,和引脚。可以正常读取SPI从机的数据。

    2023-11-09 11
  • 咨询下GD32A503K(QFN32)系列的DAC功能可以正常使用吗?

    咨询下GD32A503K(QFN32)系列的DAC功能可以正常使用吗?目前把例程下载到单片机里面DAC输出只有0.1V,软件默认设置输出应该是0X7FF的值。调整OUT_R12DH寄存器的值,输出几乎没变化。是因为QFN32没有参考引脚,没供电的原因吗?

    MUC 单片机 嵌入式

    2023-10-12 7
  • 求助HC32L110C6PA的内部温度ADC读取

    最近学习HC32L110遇到太多坑了,内部温度采集调试了很久都没搞出来,求大佬分享一下内部温度采集的程序,谢谢谢谢

  • NUCLEO-F103RB在升级ST-Link时,导致ST-Link不能使用,求助!

    NUCLEO-F103RB在用STLinkUpgrade升级ST-Link时,选择ChangeType和STM32Debug+VCP,然后点击yes后电脑就不认这全板上的ST-Link了,也没有显示U盘。请问怎么修复?