1、前言
本文使用AT32F425驱动RC522来测试SPI1的速率,关于RC522的详细代码操作可查帖子【GD32L233C-START】硬件SPI1驱动RC522。
2、关于AT32F425的SPI

AT32F425系列最多有3个spi,本文使用SPI1。
3、SPI1的最大速率

SPI1挂在APB2总线上,APB2总线的最大速率是96MHz;
SPI的最大速率为fPCLK/2,即48Mhz。
4、代码实现
/*SPI1 :
PA4/CS
PA5/SCK
PA6/MISO
PA7/MOSI
*/
(1)模拟SPI
#define SET_SPI_CS() gpio_bits_set(GPIOA, GPIO_PINS_4)
#define CLR_SPI_CS() gpio_bits_reset(GPIOA, GPIO_PINS_4)
#define SET_SPI_SCLK() gpio_bits_set(GPIOA,GPIO_PINS_5)
#define CLR_SPI_SCLK() gpio_bits_reset(GPIOA,GPIO_PINS_5)//SCL=SCLK
#define SET_SPI_MOSI() gpio_bits_set(GPIOA,GPIO_PINS_7)
#define CLR_SPI_MOSI() gpio_bits_reset(GPIOA,GPIO_PINS_7)//SDO=MOSI
#define READ_SPI_MISO() gpio_input_data_bit_read(GPIOA,GPIO_PINS_6) //SDI=MISO
void

本文详细介绍了如何使用AT32F425通过SPI1接口驱动RC522,并探讨了SPI1的最大速率。通过模拟SPI和硬件SPI的代码实现,展示了不同SPI模式下的速率测试。实测结果显示,硬件SPI能达到12MHz,而模拟SPI为1.8MHz。建议为了提高CPU效率,应优先选用硬件SPI。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



