STM32各种函数的基本配置Word格式文档下载.docx
- 文档编号:7753828
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:32
- 大小:21.30KB
STM32各种函数的基本配置Word格式文档下载.docx
《STM32各种函数的基本配置Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《STM32各种函数的基本配置Word格式文档下载.docx(32页珍藏版)》请在冰点文库上搜索。
//设置PD12,13,14,15推挽输出
OSPEEDR&
//PD12,13,14,15速度100m
OSPEEDR|=0xff000000;
SYSCFG->
CMPCR=0x00000001;
//使用IO补偿单元,
//当GPIO速度超过50M的时候要考虑使用此设置
PUPDR&
//PD12,13,14,15无上拉无下拉
BSRRH=0xf000;
//resetregisterGPIOx_BSRRH,writeonly//setregisterGPIOx_BSRRL,writeonly
while
(1)
BSRRL=0x1000;
Delay(100);
BSRRL=0x1000<
1;
Delay(100);
2;
3;
}
voidDelay(uint32_tnTime)
Gb_TimingDelay=nTime;
while(Gb_TimingDelay!
=0);
voidSysTick_Handler(void)
if(Gb_TimingDelay!
=0x00)
Gb_TimingDelay--;
*/
//设置systemtick一毫秒中断
//-------------------------------------
GPIO_InitTypeDefGPIO_InitStructure;
//EnabletheGPIO_LEDClock
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD,ENABLE);
//ConfiguretheGPIO_LEDpin
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOD,&
GPIO_InitStructure);
//点亮这个灯
BSRRL=GPIO_Pin_12;
//
//GPIOD->
ODR^=GPIO_Pin_12;
//GPIO_ToggleBits(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin);
GPIO_ToggleBits(GPIOD,GPIO_Pin_12);
//Insertadelay
Delay(10);
stm32f4xx_rcc.h"
uint32_txiande=0;
//Configurethesystemclocks
RCC_ClocksTypeDefRCC_Clocks;
//SysTickendofcounteventeach10ms
//InitializeLEDsmountedonSTM32F4-Discoveryboard
STM_EVAL_LEDInit(LED4);
STM_EVAL_LEDInit(LED3);
STM_EVAL_LEDInit(LED5);
STM_EVAL_LEDInit(LED6);
//TurnonLED4andLED5
STM_EVAL_LEDOn(LED4);
STM_EVAL_LEDOn(LED5);
RCC_GetClocksFreq(&
RCC_Clocks);
xiande=RCC_Clocks.SYSCLK_Frequency;
xiande=RCC_Clocks.HCLK_Frequency;
xiande=RCC_Clocks.PCLK1_Frequency;
xiande=RCC_Clocks.PCLK2_Frequency;
//ToggleLED3andLED6
STM_EVAL_LEDToggle(LED3);
STM_EVAL_LEDToggle(LED6);
/*定义USART6接受的数据存储变量*/
uint16_tusart6_get_data;
voidGPIO_Config(void);
voidUSART_Config(void);
voidUSART6_Puts(char*str);
voidNVIC_Config(void);
voidDelay(uint32_tnCount);
voidmain()
/*在主函数main之前通过调用启动代码运行了SystemInit函数,而这个函数位于system_stm32f4xx.c”。
程序运行起始于启动文件的第175行(LDRR0,=SystemInit)。
sys时钟为HSE频率/PLL_M*PLL_N/PLL_P,
定义HSE为25M,则sys时钟频率为168M*/
//GPIO_Config();
USART_Config();
NVIC_Config();
STM_EVAL_LEDOn(LED3);
while
(1)
STM_EVAL_LEDOff(LED3);
//setbits使能IO,当前下指输出(此时为灭)
STM_EVAL_LEDToggle(LED4);
STM_EVAL_LEDToggle(LED5);
/*以下为查询方式
USART6_Puts("
HelloWrold!
\n"
);
GPIO_ResetBits(GPIOG,GPIO_Pin_6);
//Resetbits屏蔽IO,当前下指不输出(此时为亮)
Delay(0xFFFFFF);
while(USART_GetFlagStatus(USART6,USART_FLAG_RXNE)==RESET){}
//usart6_get_data=USART_ReceiveData(USART6);
GetDataFromUSART6:
"
USART_SendData(USART6,USART_ReceiveData(USART6));
while(USART_GetFlagStatus(USART6,USART_FLAG_TXE)==RESET){}
//USART6_Puts(&
usart6_get_data);
\r\n"
*/
/*************************************************Function:
voidDelay(uint32_tnCount)
Description:
延时函数
Input:
延时的时间
Output:
无
Return:
*************************************************/
voidGPIO_Config(void)
GPIO配置函数
无
voidGPIO_Config(void)
/*定义了一个GPIO_InitStructure的结构体,方便一下使用*/
/*初始化GPIOG时钟*/
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOG,ENABLE);
//使能GPIOG时钟(时钟结构参见“stm32图解.pdf”)
/*仅设置结构体中的部分成员:
这种情况下,用户应当首先调用函数
PPP_SturcInit(..)
来初始化变量PPP_InitStructure,然后再修改其中需要修改的成员。
这样可以保证其他
成员的值(多为缺省值)被正确填入。
GPIO_StructInit(&
/*初始化GPIOG的Pin_6为推挽输出*/
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;
//指定第六引脚
//模式为输出
//频率为快速
GPIO_Init(GPIOG,&
//调用IO初始化函数
/*************************************************
Function:
voidUSART_Config(void)
USART配置函数
voidUSART_Config(void)
USART_InitTypeDefUSART_InitStructure;
USART_ClockInitTypeDefUSART_ClockInitStruct;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART6,ENABLE);
//开启USART6时钟
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC,ENABLE);
//开启GPIOC时钟
GPIO_PinAFConfig(GPIOC,GPIO_PinSource6,GPIO_AF_USART6);
//这相当于M3的开启复用时钟?
只配置复用的引脚,
GPIO_PinAFConfig(GPIOC,GPIO_PinSource7,GPIO_AF_USART6);
/*ConnectUSARTpinstoAF7*/
/*配置GPIOC*/
//缺省值填入
/*配置GPIOC_Pin6为TX输出*/
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;
//设置为复用,必须为AF,OUT不行
GPIO_Init(GPIOC,&
/*配置GPIOC_Pin7为RX输入*/
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7;
//这也必须为复用,与M3不同!
/*IO引脚复用功能设置,与之前版本不同*/
/*配置USART6*/
USART_StructInit(&
USART_InitStructure);
USART_InitStructure.USART_BaudRate=115200;
USART_InitStructure.USART_WordLength=USART_WordLength_8b;
USART_InitStructure.USART_StopBits=USART_StopBits_1;
USART_InitStructure.USART_Parity=USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl=
USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;
USART_Init(USART6,&
USART_ClockStructInit(&
USART_ClockInitStruct);
//之前没有填入缺省值,是不行的
USART_ClockInit(USART6,&
USART_ITConfig(USART6,USART_IT_RXNE,ENABLE);
//使能USART6中断
USART_Cmd(USART6,ENABLE);
//使能USART6
voidNVIC_Config()
NVIC_InitTypeDefNVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
//嵌套优先级分组为1
NVIC_InitStructure.NVIC_IRQChannel=USART6_IRQn;
//嵌套通道为
USART6_IRQn
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
//抢占优先级为0NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
//响应优先级为0
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
//通道中断使能
NVIC_Init(&
NVIC_InitStructure);
voidUSART6_Puts(char*str)
USART6发送数据
待发送数据指针
voidUSART6_Puts(char*str)
while(*str)
USART_SendData(USART6,*str++);
/*Loopuntiltheendoftransmission*/
while(USART_GetFlagStatus(USART6,USART_FLAG_TXE)==RESET);
//详见英文参考的521页,当TXE被置起时,一帧数据传输完成
/**名称:
USART6中断服务程序
*作用:
USART6收到数据后产生中断,并将收到的内容发回给上位机
voidUSART6_IRQHandler(void)
if(USART_GetITStatus(USART6,USART_IT_RXNE)!
=RESET)//判断为接收中断{
USART_SendData(USART6,USART_ReceiveData(USART6));
//发送收到的数据STM_EVAL_LEDOn(LED3);
//点亮LED,起到中断指示作用
#include<
stdio.h>
stm32f4xx_spi.h"
ff.h"
diskio.h"
SPI_MSD0_Driver.h"
stm32f4xx_dcmi.h"
stm32f4xx_i2c.h"
dcmi_ov9655.h"
camera_api.h"
#defineHang120
#defineLie160
//----
FATFSfs;
FRESULTres;
DIRdirs;
FILfile;
FILINFOfinfo;
UINTbr;
unsignedchartxtBuf[200];
charspfline[30];
//-----
//Privatetypedef-----------------------------------------------------------//Privatedefine------------------------------------------------------------//Privatemacro-------------------------------------------------------------//Privatevariables-----------------------------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STM32 各种 函数 基本 配置