STM32 库函数编写程序
来源:互联网 发布:python 字符串变json 编辑:程序博客网 时间:2024/06/05 08:20
#include "stm32f10x.h"void RCC_Configuration(void);//首先设置系统时钟为8MHZvoid GPIO_Configuration(void);void USART_Configuration(void);void delay1ms(u16 t){ u16 i,j; for(i=0;i<t;i++) for(j=1000;j>0;j++); } int main(void){ u8 i,data='A'; RCC_Configuration(); GPIO_Configuration(); USART_Configuration(); for(i=0;i<30;i++){USART_SendData(USART1, data); //发送数据 data++; while(USART_GetFlagStatus(USART1, USART_FLAG_TXE)==RESET);//USART_SR的TC置一,表示发送数据完成;否则没有完成;} return 0; }void RCC_Configuration(void)//系统时钟设置,应用库函数编程过程{//----------使用外部RC晶振-----------RCC_DeInit();//初始化为缺省值RCC_HSEConfig(RCC_HSE_ON);//使能外部的高速时钟 while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET);//等待外部高速时钟使能就绪RCC_HCLKConfig(RCC_SYSCLK_Div1);//HCLK = SYSCLKRCC_PCLK2Config(RCC_HCLK_Div1);//PCLK2 = HCLKRCC_PCLK1Config(RCC_HCLK_Div2);//PCLK1 = HCLK/2RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);//PLLCLK = 8MHZ * 9 =72MHZ,系统给外设的时钟fpclkxRCC_PLLCmd(ENABLE);//Enable PLLCLKwhile(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);//Wait till PLLCLK is ready RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//Select PLL as system clockwhile(RCC_GetSYSCLKSource()!=0x08);//Wait till PLL is used as system clock source//---------打开相应外设时钟--------------------RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能APB2外设的GPIOA的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//使能APB2外设的GPIOC的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); }void GPIO_Configuration(void)//复用引脚设置{ GPIO_InitTypeDef GPIO_InitStructure; /* Configure USARTx_Tx as alternate function push-pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;//复用上拉 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); /* Configure USARTx_Rx as input floating */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//浮空输入 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure);}void USART_Configuration(void)//复用引脚设置{USART_InitTypeDef USART_InitStructure;USART_InitStructure.USART_BaudRate = 9600;//波特率USART_InitStructure.USART_WordLength = USART_WordLength_8b; //8位数据USART_InitStructure.USART_StopBits = USART_StopBits_1; //停止位1位USART_InitStructure.USART_Parity = USART_Parity_No; //不需要奇偶校验USART_InitStructure.USART_HardwareFlowControl =USART_HardwareFlowControl_None;//不需要硬件流控制USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;//发送使能,接收使能USART_Init(USART1, &USART_InitStructure);//初始化 USART_Cmd(USART1, ENABLE); //UE使能}
0 0
- STM32 库函数编写程序
- 编写程序实现库函数strcat的功能
- STM32:STM32库函数配置
- 使用Visual Studio Code编写STM32程序
- stm32 Flash读写[库函数]
- stm32库函数FSMC_NORSRAMInit()解析
- stm32库函数GPIO_Init()解析
- stm32库函数GPIO_PinRemapConfig分析
- stm32库函数GPIO_Init()解析
- stm32 Flash读写[库函数]
- stm32 Flash读写[库函数]
- 解析STM32的库函数
- stm32库函数学习笔记
- ## stm32库函数初探 ##
- STM32单片机常用库函数
- 新建STM32库函数工程
- Stm32库函数头文件
- STM32-USART库函数
- artisan命令
- 基础UI编程
- 重装ubuntu后不能连接wifi无线
- 【51Nod 1255】字典序最小的子序列
- C++ 动态链接库的两种调用方式
- STM32 库函数编写程序
- autolayout 动态计算高度时 UILabel的preferredMaxLayoutWidth设置
- iOS线程之NSThread
- Android 多媒体控制 来电监听-耳机插拔监听-耳机按钮监听-MediaSession-MediaStyle
- 指针在函数中的应用
- 玩玩python之爬取补天厂商列表
- 在网站添加客服QQ,打开临时回话框(不用加为好友)
- vibe算法入侵检测,找轮廓,并且画轮廓
- Android中XML使用