最近接触了
STM32,到目前为止相处得很好!后悔没有早点这样做,所以有大量的追赶和“学习做”(这里是机械工程背景)。
特别是学习;我想调查专业人员将如何为低端 mcu 实施优化的数据总线(例如 STM32F1x/预算限制)。以下是我到目前为止编写的代码,顺便说一句,效果很好,但是我觉得性能相当欠缺,某处某处。
有没有其他方法可以更快地获得 16 位???
附言。
#define DATAOUT ( i) 似乎是瓶颈
感谢您提供的任何推荐/替代方法,我真诚地感谢您的帮助
- //LCD.H
- #define DATAOUT(i) {
- GPIOA->BSRR = 0b0001000011111111 << 16;
- GPIOA->BSRR = (((i) & (1<<0)) << 0)
- | (((i) & (1<<1)) << 0)
- | (((i) & (1<<2)) << 0)
- | (((i) & (1<<3)) << 0)
- | (((i) & (1<<4)) << 0)
- | (((i) & (1<<5)) << 0)
- | (((i) & (1<<6)) << 0)
- | (((i) & (1<<7)) << 0)
- | (((i) & (1<<12)) << 0);
- GPIOB->BSRR = 0b1110111100000000 << 16;
- GPIOB->BSRR = (((i) & (1<<8)) << 0)
- | (((i) & (1<<9)) << 0)
- | (((i) & (1<<10)) << 0)
- | (((i) & (1<<11)) << 0)
- | (((i) & (1<<13)) << 0)
- | (((i) & (1<<14)) << 0)
- | (((i) & (1<<15)) << 0);
- }
- //LCD.C
- static void WriteData(uint16_t data)
- {
- //elapsed_time_start(0);
- DATAOUT(data); //elapsed_time@72Mhz -> 81 ticks(?!)
- //elapsed_time_stop(0);
- }