正点原子stm32f103 库函数
时间: 2023-07-29 13:07:50 浏览: 40
正点原子提供了基于STM32F103芯片的库函数,包括GPIO、USART、I2C、SPI、RTC等模块的驱动函数。这些库函数可以大大简化STM32F103芯片的开发过程,提高开发效率。以下是一些常用的库函数示例:
GPIO初始化:
```
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
```
USART发送数据:
```
void USART_SendData(USART_TypeDef* USARTx, uint16_t Data)
{
USART_SendData(USART1, (uint8_t) Data);
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
}
```
I2C发送数据:
```
I2C_SendData(I2C1, (uint8_t)Data);
while(I2C_GetFlagStatus(I2C1, I2C_FLAG_TXE) == RESET);
```
SPI发送数据:
```
SPI_I2S_SendData(SPI1, Data);
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
```
RTC初始化:
```
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
PWR_BackupAccessCmd(ENABLE);
BKP_DeInit();
RCC_LSEConfig(RCC_LSE_ON);
while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET);
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);
RCC_RTCCLKCmd(ENABLE);
RTC_WaitForSynchro();
RTC_WaitForLastTask();
RTC_SetPrescaler(32767);
RTC_WaitForLastTask();
```
以上是一些常用的库函数示例,具体使用方法可参考正点原子提供的官方文档。