stm32实验程序代码.docx

上传人:p** 文档编号:925922 上传时间:2024-04-12 格式:DOCX 页数:13 大小:26.98KB
下载 相关 举报
stm32实验程序代码.docx_第1页
第1页 / 共13页
stm32实验程序代码.docx_第2页
第2页 / 共13页
stm32实验程序代码.docx_第3页
第3页 / 共13页
stm32实验程序代码.docx_第4页
第4页 / 共13页
stm32实验程序代码.docx_第5页
第5页 / 共13页
stm32实验程序代码.docx_第6页
第6页 / 共13页
stm32实验程序代码.docx_第7页
第7页 / 共13页
stm32实验程序代码.docx_第8页
第8页 / 共13页
stm32实验程序代码.docx_第9页
第9页 / 共13页
stm32实验程序代码.docx_第10页
第10页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《stm32实验程序代码.docx》由会员分享,可在线阅读,更多相关《stm32实验程序代码.docx(13页珍藏版)》请在第壹文秘上搜索。

1、实验1GPIO#include#incIude*Input:None*Output:None*Return:None*intmain(void)*Configurethesystemclocks*/*Input:None*Output:None*Return:None*voidNVIC_Configuration(void)NVIC_IniUypeDefNVIC_Ini!Structure;*Configureonebitforpreemptionpriority*/NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);*EnabletheEXT19_5

2、Interrupt*/* Input:None* Output:None* Return:None*/voidGP10_Configuration(void)(GP10_InitTypeDefGPI0_lni!Structure;*EnableGPIOA,GPIOFandAFIOclocks*/RCC_APB2PeriphCIockCmd(RCC_APB2Periph_GPIOARCC_APB2Periph_GPIOFRCC_APB2Periph_AFI0,ENABLE);*ConfigurePF.asOutputpush-pulI*/GPI0_Pin_3|GPI0_Pin_4|GPI0_Pi

3、n_5|GPI0_Pin_6|GPI0_Pin_7|GPI0_Pin_8|GPI0_Pin_9|GPIO_Pin_1O;=GPI0_Speed_50MHz;=GPIO_Mode_Out_PP;GPIO_lnit(GPIOF,&GPIOJnitStructure);*ConfigurePA9asinputfloating(EXTILine9)*/=GPI0_Pin_9;* Input:None* Output:None* Return:None/intmain(void)*配置LED灯使用的GPlO管脚模式*/RCC_APB2PeriphCIockCmd(RCC_GPIO_LED,ENABLE)

4、;*使能LED灯使用的GPIO时钟*/=LD1_PIN|LD2_PIN|LD3_PIN|LD4_PIN|LD5_PIN|LD6_PIN|LD7_PIN|LD8_PIN;=GPI0_Mode_0ut_PP;=GPI0_Speed_50MHz;GPIO_lnit(GPIO_LED,&GP10_lni!Structure);*使用的LED灯相关的GPlo初始化*/GPI0_ResetBits(GPI0_LED,LD1_PIN|LD2_PINLD3,PINLD4_PINLD5_PINLD6,PINLD7_PIN|LD8_PIN);/*关闭所有的LED指示灯*/whiIe(1)GP10_ResetBit

5、s(GP10_LED,LD1_PINLD2_PINLD3_PINLD4_PINLD5_PINLD6_PINLD7_PIN|LD8_PIN);*关闭所有的LED指示灯*/Turn_0n_LED(count%8);*Input:nCont:specifiesthedeIaytimelength.* Output:None* Return:None*/voidDelay(vu32nCount)for(;nCount!=0;nCount);实验11串口收发#include#include*paramNone*retvaINone*/voidRCC_Configuration(void)(*使能串口1和

6、串口2使用的GPIo时钟*/RCC_APB2PeriphCIockCmd(USART1_GPIO_CLKUSART2_GPIO_CLK,ENABLE);*EnableUSART1Clock*/*使能串口1时钟*/RCC_APB2PeriphCIockCmd(USART1_CLK,ENABLE);*使能串口2时钟*/RCC_APB1PeriphCIockCmd(USART2_CLK,ENABLE);/*使能LED灯使用的GPIO时钟*/RCC_APB2PeriphCIockCmd(RCC_GPI0_LED,ENABLE);)* briefConfiguresthedifferentGPIOpor

7、ts.* paramNone*retvaINone*/voidGP10_Configuration(void)(GP10_InitTypeDefGP10_Ini!Structure;*串口1RX管脚配置*/*ConfigureUSART1Rxasinputfloating*/=USART1_RxPin;=GPIO_Mode_IN_FLOATING;GPI0_lnit(USART1_GPI0,&GPI0_lni!Structure);*串口2RX管脚配置*/*ConfigureUSART2Rxasinputfloating*/=USART2_RxPin;GPI0_lnit(USART2_GPI0

8、,&GP10_Ini!Structure);*串口1TX管脚配置*/* Configure USART1 Txasalternatefunctionpush-puII*/=USART1_TxPin;=GPI0_Speed_50MHz;=GPIO_Mode_AF_PP:GPI0_lnit(USART1_GPI0,&GPIO_lni!Structure);*串口2TX管脚配置*/* Configure USART2 Txasalternatefunctionpush-pulI*/=USART2_TxPin;GPI0_lnit(USART2_GPI0,&GPIO_lnItStructure);*配置

9、LED灯使用的GPlO管脚模式*/=LD1_PIN|LD2_PINLD3_PINLD4_PIN;=GPIO_Mode_Out_PP;=GPI0_Speed_50MHz;GPI0.lnit(GPIO_LED,&GPI0_lni!Structure);)* briefConfiguresthenestedvectoredinterruptcontroller.* paramNone*retvaINone*/voidNVIC_Configuration(void)(NVIC_InitTypeDefNVIC_Ini!Structure;*ConfiguretheNVICPreemptionPriori

10、tyBits*/NVIC_PrioriIyGroupConfig(NVIC_PriorityGroup_0);*EnabletheUSART1Interrupt*/=USART1_IRQn;=0;=ENABLE;NVICInit(&NVICInitStructure);*EnabletheUSART2Interrupt*/=USART2_IRQn;=1;=ENABLE:NVIC_Init(&NVIC_Ini!Structure);)* briefComparestwobuffers.* parampBuffer1,pBuffer2:bufferstobecompared.* paramBuff

11、erLength:buffersIength* retvaIPASSED:pBuffer1identicaltopBuffer2* FAILED:pBuffer1differsfrompBuffer2*/TestStatusBUfferCmP(U8*pBuffer1,u8*pBuffer2,u16BufferLength)whiIe(BufferLength)if(*pBuffer1!=*pBuffer2)returnFAILED;)pBuffer1+;pBuffer2+;)returnPASSED;)* briefThisfunctionhandIesUSART1gIobaIinterrup

12、trequest.* paramNone*retvaINone*/voidUSARTI-IRQHandIer(VOid)if(USARTGetITStatus(USART1,USARTITRXNE)!=RESET)*Readonebytefromthereceivedataregister*/RxBufferIRxCounterI+=USART_ReceiveData(USART1);if(RxCounterI=NbrOfDataToReadD(*DisabletheUSART1Receiveinterrupt*/USART_ITConfig(USART1,USART_IT_RXNE,DISA

13、BLE);)if(USART_GetITStatus(USART1,USART_IT_TXE)!=RESET)(*Writeonebytetothetransmitdataregister*/USART_SendData(USART1,TxBufferITxCounterI+);if(TxCounterI=NbrOfDataToTransferD(*DisabletheUSART1Transmitinterrupt*/USART_ITConfig(USART1,USART_IT_TXE,DISABLE);)* briefThisfunctionhandIesUSART2gIobaIinterruptrequest.* paramNone*retvaINone*/voidUSART2_IRQHandler(void)(if(USART_GetITStatus(USART2,USART_IT_RXNE)!=RESET)(*Readonebytefromthereceivedataregister*/RxBuffer2RxCounter2+=USART_ReceiveData(USART2);if(RxCounter2=NbrOfDataToReadD(*DisabletheUSART2Re

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 数据库

copyright@ 2008-2023 1wenmi网站版权所有

经营许可证编号:宁ICP备2022001189号-1

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!