LightmoonCD 发表于 2015-5-29 14:48:53

如何实现stm32快速将多个数据串行输出到各个IO口

我想用STM32将12组数据分别像移位寄存器操作一样,分别从12个IO口将数据发出,因为数据量很大,所以速度一定要快,请问各位大侠有没好的解决方案呢。谢谢。。。。。。。。。。。。。。。

lkl0305 发表于 2015-5-29 15:47:08

帮顶!!

为什么是EEFOCUS小白 发表于 2015-5-30 08:55:34

帮顶         

发表于 2015-5-30 09:02:12

可以通过直接写GPIO数据寄存器实现,但是频率需要测试。虽然GPIO输出可以配置为50Mhz,实际的使用,还需要楼主测试。

mark0668 发表于 2015-5-30 10:18:17

可以用DMA

LightmoonCD 发表于 2015-6-11 09:23:40

安 发表于 2015-5-30 09:02
可以通过直接写GPIO数据寄存器实现,但是频率需要测试。虽然GPIO输出可以配置为50Mhz,实际的使用,还需要 ...

我现在采用的是位域操作输出每一位直接到输出寄存器,但是12组数据中需一个统一的时钟线,速度还是比较慢,时间都花在了每次CPU取数据(CPU取每个字节数据)上面,最快也才300KHz(每位数据跟新速度)。

LightmoonCD 发表于 2015-6-11 09:24:44

mark0668 发表于 2015-5-30 10:18
可以用DMA

DMA无法按位操作。同时无法统一输出时钟信号。不好弄

发表于 2015-6-11 09:46:00

本帖最后由 安 于 2015-6-11 09:47 编辑

楼主是否可以考虑用数据寄存器GPIOx_ODR,一次性操作16个IO口

stary666 发表于 2015-6-11 09:53:21

帮顶,,,,,,,,,

HenryChen 发表于 2015-6-11 10:12:22

DMA能直接写GPIO数据寄存器么?我也想知道。
页: [1] 2
查看完整版本: 如何实现stm32快速将多个数据串行输出到各个IO口