-
发现一个AT32开启FPU(浮点单元)的奇怪问题!
在官方的AN0037应用笔记上,提到开启FPU需要先检查system_at32f4xx.c文件文件中的voidSystemInit(void)函数,是否有如下代码:#ifdefined(__FPU_USED)&&(__FPU_USED==1U)SCB->CPACR|=((3U
2024-01-06 0 -
雅特力全系列MCU都不支持触摸应用吗?
如题,在规格书中都没看到集成触摸控制器,这么强大的MCU居然不支持触摸?我看到其他厂家M0核的都集成了触摸功能。
2023-08-30 0 -
GD32F450的EXMC接口与TFT-LCD接口可以同时使用吗?
大家好,最近在看GD32F450的M4核芯片,这颗芯片支持EXMC(类似于STM的FSMC)接口和TFT-LCD接口,由于要外接一个800x480分辨率的RGB888接口的LCD,所以需要外挂大的SDRAM,所以正好使用EXMC外挂一颗SDRAM芯片,但是瞄了一眼规格书,发现一个问题,很多TFT-LCD接口引脚和EXMC引脚都是复用的,意味着只能使用其中一个功能?首次接触GD32F450,不太了解,是确实就是只能使用其中之一,还是有其他方法两者可以同时使用?我知道很多人用EXMC直接外挂TFTLCD,但是我现在需要用EXMC外挂SDRAM存储器,用TFT接口外接LCD,因为我的TFTLCD是RGB888接口的,只能用专用TFT接口。我个人感觉,如果只能用其中之一,这个真的太扯淡了!提供了功能,但是复用引脚,有人同时使用过EXMC和TFT-LCD接口吗?第一次使用GD32M4核的芯片,有些地方不太了解,希望用过的朋友赐教,谢谢!
2022-09-05 11 -
请问HC32F460 有中断分组功能吗(抢占式和响应式)??
最近在设置HC32F460中断优先级时,查阅规格书,发现规格书中对HC32F460的中断分组只字未提,不知道是否像STM32那样,支持中断分组,就是设置抢占式和响应式优先级?我后来发现在CMSIS提供的内核库函数中有这样两个函数:NVIC_PriorityGroupConfig();NVIC_SetPriority();这和STM32中使用的函数是一样的,因为内核都是M4核,但是在华大提供的例程里面涉及到中断配置时,只看到使用NVIC_SetPriority();,从来没有见到使用过NVIC_PriorityGroupConfig();,想请问下,是HC32F460没有开放中断分组的功能吗?到底支持不支持呢?规格书中也没有提到任何中断分组,如果支持,用法和STM32用法一样吗?
2022-08-07 0 -
求多任务系统中步进减速电机平稳运行的思路
调了好几天都没搞定,发现步进电机驱动起来很简单,但是要想电机转动平稳太难了,尤其是在多任务的系统中。用的是24BJY48步进减速电机,四相八拍方式,步距角是5.625°,用的是脉冲驱动方式。我的系统现在有多个任务,就是在while(1)循环中有好几个函数需要执行,步进电机驱动是其中一个,现在如果把步进电机测试函数单独放在while(1)中,如下intmain(void){while(1){motor_test();//步进电机驱动}}那么步进电机运转很丝滑,很平稳,我通过多次调试找到了延时设置为1500us时,电机运转最平稳,当然这只限于while(1)中只有这一个函数时,如果我同时运行其他任务,如下intmain(void){while(1){motor_test();//步进电机驱动read_sensor();status_update();}}voidmotor_test(){PAH;PBL;PCL;PDL;SysTick_delay_us(1500);PAH;PBH;PCL;PDL;SysTick_delay_us(1500);PAL;PBH;PCL;PDL;SysTick_delay_us(1500);PAL;PBH;PCH;PDL;SysTick_delay_us(1500);PAL;PBL;PCH;PDL;SysTick_delay_us(1500);PAL;PBL;PCH;PDH;SysTick_delay_us(1500);PAL;PBL;PCL;PDH;SysTick_delay_us(1500);PAH;PBL;PCL;PDH;SysTick_delay_us(1500);}那么,电机会转起来,但是会产生震动,怎么调整延时值都没用,1500上下的延时我都试过了,一样震动,可能有人会说,用定时器中断,我当然试过,而且调试了很长时间,一样的结果也是震动,我知道是其他程序影响了电机运转,但不至于对时间要求这么精确把?其他的程序执行会分掉时间,但不至于会影响到电机这么严重吧?实际项目中不可能只有电机控制这一个函数,肯定是多个函数一起运行的。我甚至把这两个函数read_sensor();和status_update();用时间片轮询的方法写了一遍,就是给他们分配更长的执行时间,让步进电机执行时间尽可能短,也还是不行,还是震动。真的没有思路了,大家有什么好的思路吗?可以解决震动问题
2022-08-03 16 -
LCD_ShowChar字符显示函数影响系统的响应时间问题
各位好,我现在调一块3.5寸的TFTLCD,发现厂家提供的voidLCD_ShowChar()这个显示字符串的函数执行效率非常低下,我的程序中一使用这个函数,按键的反应就下降很多,按一下按键,LCD上几乎1s才有反应,只要注释掉这个函数,按键的响应几乎瞬间的,非常快!这个函数如下:voidLCD_ShowChar(uint16_tx,uint16_ty,uint8_tnum,uint8_tsize,uint8_tmode,uint16_tpcolor,uint16_tbcolor){uint8_ttemp,t1,t;uint16_ty0=y;uint8_tcsize=(size/8+((size%8)?1:0))*(size/2);//得到字体一个字符对应点阵集所占的字节数num=num-'';//得到偏移后的值(ASCII字库是从空格开始取模,所以-''就是对应字符的字库)//Address_set(x,y,x+size/2-1,y+size-1);//如果把地址放在这里,不放循环中可以解决响应问题,但是商家给我的程序,这里被注释掉了,不知道为啥?我启用后,发送字符显示乱码------1for(t=0;t
2022-07-21 6 -
HC32F460JETA SPI+DMA驱动2.8寸TFT LCD非常慢!!
大家好,最近我用HC32F460驱动一块2.8寸的SPITFT,分辨率320x240,但是发现TFT刷屏的速度非常非常慢!慢到大概5到6s才会刷完一屏!后来我开了DMA,也是几乎没有任何改善!我的SPI配置用的是官方例程,SPI时钟2分频,系统时钟使用的MCU内部自带时钟,我不知道自带时钟的PCLK1是多少,但PCLK1在2分频后总不能5,6s才刷完一次屏吧,我之前用过其他的国产MCU,仿STM32F030,主频只有48M,我拿来刷3.5寸480x320的屏都比这个快啊,调了好几天都找不到原因,后来打算换到外部时钟看看,结果换到外部时钟后,又出现新的问题了,下面是我使用这颗芯片的所有问题汇总,希望能得到专家的指点:1,刚开始,使用的是MCU自带内部时钟,用SPI+DMA驱动屏幕,SPI+DMA的配置用的是官方例程,SPI时钟2分频,屏幕可以正常初始化和点亮,但就是速度非常非常慢,如上所提到的,5,6s刷屏一次,简直无法忍受,检查了很多地方,实在是没辙了,因为从没遇到过这样的问题,之前用过的国产32位的单片机也很多,从未遇到这样的问题,感觉很奇怪。2,为了验证是不是内部时钟问题,我使用了外部时钟,在外面焊了一颗16M的晶振,然后用官方例程切换到外部时钟,奇怪的是切换过去之后,整个系统启动变得非常缓慢,大概2s左右,之前用内部时钟都是秒启动。而且使用这颗外部16M时钟还影响了我的timer0定时器,我明明是设置的1ms进一次中断,可是使用外部时钟后,变成大概6s进一次中断(期间也换过既可16M晶振验证,无改善)。外部时钟的时钟的配置按照官方例程,也检查了和修改了很多次,没有发现哪里有问题,所以我不知道到底外部时钟配置成功没有,从现象上看确实应该是配置成功了,但是没有按照预期运行,还影响了定时器时基。当然驱动屏幕的结果也是和使用内部时钟一样的,奇慢无比。以下是我的部分代码:SPI+DMA部分:voidLCD_SPI_INIT(void){stc_spi_init_tstcSpiInit;//定义结构变量MEM_ZERO_STRUCT(stcSpiInit);//清零结构变量PWC_Fcg1PeriphClockCmd(
2022-07-14 5