问答

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

elephant00

TA的家园币:7239  

  • GD32E230C8T6 电池备份域给RTC时钟供电的问题

    准备用GD32E230C8T6电池备份域给RTC时钟供电,但是芯片内部并没有电源切换器(GD32f303有切换器),当Vdd电源断开,由纽扣电池供电后,继续给Vbak供电会不会很快消耗掉呢?

  • 关闭Capsense中断有没有要求

    由于产品功能要求,需要执行某个任务时关闭一下Capsene中断,我这边直接调用了Capsense_ISR_Disable()函数,是否需要判断按键扫描完成才能调用该函数,如果直接调用Capsense_ISR_Disable()函数,是否合规或者有什么风险;请给个合理的操作,谢谢。

    CapSense

    2024-02-29 8
  • GD32F303 使用KEIL仿真,JLINK连不上什么原因?

    GD32F303使用KEIL仿真,JLINK连不上什么原因?需要怎么设置?

    2024-01-24 61
  • HC32F460串口怎么配置单线半双工模式?

    本帖最后由ewge于2024-1-1913:18编辑最近做的一个用串口通信的项目,要用单线全双工和模块相互通信,看了相关例程和文档,也都不知道怎么配置单线半双工模式。还是只支持全双工通信?希望有大佬帮忙解答一下,谢谢

  • 使用GD32E230X8通过IAR仿真出现outside FLASH问题

    使用GD32E230X8通过IAR烧录仿真时出现WritingoutsideFLASHmemoryataddress0x8004000的错误提示,通过查阅资料发现该芯片flash地址是0x8000000~0x800ffff,大小为64k,IAR上的icf文件设置地址也是正确,map文件中程序写到地址0x800'449c,剩余0xbb64

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

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

  • 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

  • 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。

  • 关于串口DMA等待传输完成卡死的问题

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

  • GD32F407 SPI数据异常

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

    2023-11-09 11
  • 想问一下 GD32 USART_DATA寄存器的数据就是usart_data_transmit发送的数据吗

    本帖最后由伯庸于2023-11-616:54编辑有没有老哥能帮忙解答下这个data寄存器的数据为什么要么和发送的不一样要么根本不变化一直是0引脚配置没有问题连接别的器件时可以正常运行

  • 宏定义U_MAX_FREQ 代表什么频率?单位是什么分钟还是秒?

    宏定义U_MAX_FREQ代表什么频率?单位是什么分钟还是秒?

    技术交流 国产芯片

    2023-10-16 6
12下一页