STM32G0开发笔记-Platformio+libopencm3-SPI接口使用
使用Platformio平台的libopencm3开发框架来开发STM32G0,下面介绍SPI接口的基本使用。
1 SPI配置
以下为设置SPI1,引脚映射为PA5\6\7,使用软件控制CS-PA4;
1 | /* Enable SPI1 Periph and gpio clocks */ |
设置流程:打开外设时钟-> 设置SPI引脚 -> CS引脚 -> 配置SPI模式包括SPI速度、CPOL\CPHA -> SPI传输数据位数 -> NSS配置 -> SPI使能;
2 SPI读写
- 写入后读取
1 | uint16_t spi_xfer(uint32_t spi, uint16_t data) |
- 发送
1 | void spi_send(uint32_t spi, uint16_t data) |
- 接收
1 | uint16_t spi_read(uint32_t spi) |
- 对于8bit的发送和接收在STM32G0上,libopencm3库需要使用如下接口:
1 | spi_send8(); |
3 说明
默认配置的SPI时钟是连续的,波形如下:
在某些时候需要在帧之间有些空隙,可以设置CR2寄存器的NSSP位或者直接在发送前进行延时:
1 | SPI_CR2(SPI1) |= SPI_CR2_NSSP; //NSSP |
波形如下:
著作权归本网站(https://makerinchina.cn)所有,转载请注明来自 MakerInChina.