汇集网友智慧,解决技术难题
国产芯片 嵌入式 技术交流
赞0
评论
2025-04-27
点击图片添加到编辑器内容中
点击文件名将附件添加到文章中
提交
tyw
317个答案
天意无罪
287个答案
xch
217个答案
jjjyufan
202个答案
coody
196个答案
LcwSwust
160个答案
chunyang
135个答案
tpgf
113个答案
赞0
void spi2_config(void) {
/* 使能GPIO和SPI2时钟 */
spi_parameter_struct spi_init_struct;
rcu_periph_clock_enable(RCU_GPIOC); // 使能GPIOC时钟
rcu_periph_clock_enable(RCU_GPIOA); // 使能GPIOA时钟(PA15)
rcu_periph_clock_enable(RCU_SPI2); // 使能SPI2时钟
/* 配置引脚复用功能 */
// CS PA15 : 复用推挽输出
gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_15);
gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_15);
gpio_af_set(GPIOA, GPIO_AF_6, GPIO_PIN_15);
// SCK PC10 : 复用推挽输出
gpio_mode_set(GPIOC, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_10);
gpio_output_options_set(GPIOC, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_10);
gpio_af_set(GPIOC, GPIO_AF_6, GPIO_PIN_10);
// MISO PC11: 复用浮空输入
gpio_mode_set(GPIOC, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_11);
gpio_af_set(GPIOC, GPIO_AF_6, GPIO_PIN_11);
// MOSI PC12: 复用推挽输出
gpio_mode_set(GPIOC, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_12);
gpio_output_options_set(GPIOC, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_12);
gpio_af_set(GPIOC, GPIO_AF_6, GPIO_PIN_12);
/* 复位并配置SPI2 */
//spi_i2s_deinit(SPI2);
/* configure SPI1 parameter */
spi_init_struct.trans_mode = SPI_TRANSMODE_FULLDUPLEX;
spi_init_struct.device_mode = SPI_MASTER;
spi_init_struct.frame_size = SPI_FRAMESIZE_16BIT;
spi_init_struct.clock_polarity_phase = SPI_CK_PL_LOW_PH_1EDGE;
spi_init_struct.nss = SPI_NSS_HARD;
spi_init_struct.prescale = SPI_PSC_64;
spi_init_struct.endian = SPI_ENDIAN_MSB;
spi_init(SPI2, &spi_init_struct);
//SPI_CTL0(SPI2) = ((uint32_t)0x0000084cU);
spi_nss_output_enable(SPI2);
/* 使能SPI2 */
spi_enable(SPI2);
}
评论
2025-04-27
赞0
评论
2025-04-27
您需要登录后才可以回复 登录 | 注册