lemontreen 发表于 2024-6-24 23:12:37

aidn 发表于 2024-6-24 21:00
stm的m0刷屏最大的问题是内存太少而不是运算或者接口速度,无法开双屏、半屏甚至双行都力不从心.

内存应该够用了。特别是070的36K内存,除非你用了分辨率特别大的屏幕或者其他程序消耗了太多的内存。

aidn 发表于 2024-6-25 13:31:22

lemontreen 发表于 2024-6-24 23:12
内存应该够用了。特别是070的36K内存,除非你用了分辨率特别大的屏幕或者其他程序消耗了太多的内存。

0.96寸分辨率160*80一屏数据25K。1.47寸分辨率172*320一屏数据110K。做fft运算还得大量的flash和ram

lemontreen 发表于 2024-6-25 14:35:26

aidn 发表于 2024-6-25 13:31
0.96寸分辨率160*80一屏数据25K。1.47寸分辨率172*320一屏数据110K。做fft运算还得大量的flash和ram

有算法能节省内存的,你要是按照这么个用法的话单片机还真没几个内存够用的

iffi123 发表于 2024-6-25 18:58:43

本帖最后由 iffi123 于 2024-6-25 19:00 编辑

aidn 发表于 2024-6-25 13:31
0.96寸分辨率160*80一屏数据25K。1.47寸分辨率172*320一屏数据110K。做fft运算还得大量的flash和ram

明显方法不对,屏幕显示内容不变的部分就不需要刷新,只更新变化的区域,有何必要把屏幕所有点阵全部缓存在内存里,按你这么做,320*480光内存占用都要300K, stm32大部分型号都没这么大内存

即使需要更新的部分,也不需要用缓存的办法刷新,实时计算刷新都足够

aidn 发表于 2024-6-26 02:01:21

lemontreen 发表于 2024-6-25 14:35
有算法能节省内存的,你要是按照这么个用法的话单片机还真没几个内存够用的

可以参考lvgl的做法,双缓存,全屏半屏一行反正内存越少性能越差。我现在遇到的问题是比较低级的。我不知道是我的问题还是cubeMX的问题还是芯片的问题,因为我没搜到用070刷屏的,这adc更是莫名其妙

aidn 发表于 2024-6-26 02:17:09

iffi123 发表于 2024-6-25 18:58
明显方法不对,屏幕显示内容不变的部分就不需要刷新,只更新变化的区域,有何必要把屏幕所有点阵全部缓 ...

那好吧,实时显示4个通道的波形你觉得怎么刷屏才更快?显示4个通道没缓存要清一次屏绘4次波形,既浪费算力又浪费io带宽。有缓存只刷一次,时间是运算时间+io时间。开双缓存一边算一边绘,时间是运算和io两者的最大值

lemontreen 发表于 2024-6-26 09:32:48

aidn 发表于 2024-6-26 02:01
可以参考lvgl的做法,双缓存,全屏半屏一行反正内存越少性能越差。我现在遇到的问题是比较低级的。我不知 ...

030C8T6、070CBT6、070RBT6我手上都有,也自己做了核心板在用,目前没有遇到你说的这两个问题,ADC也完全正常。
有没有试过换芯片?搞不好芯片损坏或者买到假货了。我买030C8T6是买到过假货的。那么070系列也是有可能的

lemontreen 发表于 2024-6-26 09:34:25

aidn 发表于 2024-6-26 02:17
那好吧,实时显示4个通道的波形你觉得怎么刷屏才更快?显示4个通道没缓存要清一次屏绘4次波形,既浪费算 ...

你不一定要缓存整个屏幕的缓存,你可以只缓存波形曲线所在的点的坐标,这样内存占用就少的多了。

iffi123 发表于 2024-6-26 10:33:16

aidn 发表于 2024-6-26 02:17
那好吧,实时显示4个通道的波形你觉得怎么刷屏才更快?显示4个通道没缓存要清一次屏绘4次波形,既浪费算 ...

为什么要专门清屏一次? 你重绘显示区域,重绘后自然就把之前的显示完全抹去,本身就有清屏的作用。只要程序优化好,而实时处理显示并不会占用多少时间,占用内存很低。
你是想着用dma后台刷新节省cpu开销,但dma传输的数据也要事先处理好,比如比如符合565格式,你需要把整个缓存的数据处理一遍,一样也很耗时

aidn 发表于 2024-6-26 13:35:50

lemontreen 发表于 2024-6-26 09:32
030C8T6、070CBT6、070RBT6我手上都有,也自己做了核心板在用,目前没有遇到你说的这两个问题,ADC也完全 ...

F030,F103,F070,G030都算正常,其中F103无法锁定adc采集同步显示出来就是波形不断左右漂移,换了F030个F070采集显示都没问题就是闪存太小没有锄头哥功力傅里叶变换上汇编结果就是装不下。G030CB其实可以了想着价钱差不多上G070看看毕竟快了点结果就这样了。既然大神说没问题我删除工程重建看看。现在只焊了两片同样的问题,多焊两片再看看

aidn 发表于 2024-6-26 17:31:52

iffi123 发表于 2024-6-26 10:33
为什么要专门清屏一次? 你重绘显示区域,重绘后自然就把之前的显示完全抹去,本身就有清屏的作用。只要程 ...

清屏是很快的哪怕spi只有10MHz1.47寸的屏每秒都能刷90次。显示慢是因为描点spi每次启停都需要时间C/D线跳变也,描一点的时间足够刷5,6行了

iffi123 发表于 2024-6-26 18:24:30

aidn 发表于 2024-6-26 17:31
清屏是很快的哪怕spi只有10MHz1.47寸的屏每秒都能刷90次。显示慢是因为描点spi每次启停都需要时间C/D线跳 ...

对于部分区域的显示刷新,你不会是循环调用 描单点函数 的办法吧? 如果这样肯定慢,部分区域的刷新,只需要设置1次的x,y范围(SP,EP,SC,EC), 然后就是连续写入各点像素的颜色值,直至结束,速度很快的

aidn 发表于 2024-6-27 08:07:35

iffi123 发表于 2024-6-26 18:24
对于部分区域的显示刷新,你不会是循环调用 描单点函数 的办法吧? 如果这样肯定慢,部分区域的刷新, ...

不理姐,4通道波形不用描点用什么区域填充?是指一行或者一列在缓冲区先描好再用dma来填充吗?现在就是这样绘画的。就是受限内存太小还是太慢了

lemontreen 发表于 2024-6-27 10:00:51

aidn 发表于 2024-6-26 13:35
F030,F103,F070,G030都算正常,其中F103无法锁定adc采集同步显示出来就是波形不断左右漂移,换了F030个F0 ...

2片同样的问题那芯片应该没问题了。G070确实性价比比G030强多了,我也买了很多070在用。

aidn 发表于 2024-6-27 17:56:05

很奇怪20M就是个临界点低于就正常高一点都不行,20.8MHZ都不行20M不能长期工作有时几分钟有时几个钟就会反色然后画面就停了,低于就正常这感觉是芯片的问题
页: 1 [2] 3 4
查看完整版本: stm32g070cb 用ADC和SPI出现问题。