完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include"STM32f10x.h"
#include"string.h" //#include"stm32f10x_it.h" void RCC_Config(); void GPIO_Config(); void USART_Config(); void NVIC_Config(); //void Tx_string(u8*str); //u8 buffer[]="nihao"; u8 Txdata[100]={0xaa, 0x55 ,0x77 ,0x9a ,0x76 ,0x79 ,0x88}; u8 length; u8 i; int main(void) { RCC_Config(); GPIO_Config(); NVIC_Config(); USART_Config(); //Tx_string(buffer); length=strlen(Txdata); while(length--){ if (USART_GetiTStatus(USART2, USART_IT_TXE) == SET) { USART_ClearITPendingBit(USART2,USART_IT_TXE); USART_SendData(USART2,Txdata[i++]); while(USART_GetFlagStatus(USART2,USART_FLAG_TC )==1); } } while (1); //µÈ´ýÖÐ¶Ï } /* void Tx_string(u8*str) { u8 i; u8 long; long=strlen(buffer); for(i=0;i USART_SendData(USART2,*str++); //while((USART2->SR&0X40)==0);//Ñ»··¢ËÍ,Ö±µ½·¢ËÍÍê±Ï //USART2->DR = *str++; GPIO_SetBits(GPIOB,GPIO_Pin_9); } }*/ void RCC_Config() { //RCC_TypeDef RCC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); //ʹÄÜLED4/5 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); } void GPIO_Config() { GPIO_InitTypeDef GPIO_InitStructure; //ÅäÖÃLED->D4/D5 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9|GPIO_Pin_8; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //ÅäÖÃÍÆÍìÊä³ö GPIO_Init(GPIOB,&GPIO_InitStructure); //ÅäÖÃTX GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; //ÅäÖÃÍÆÍìÊä³ö GPIO_Init(GPIOB,&GPIO_InitStructure); //ÅäÖÃRX GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING; //ÅäÖø¡¿ÕÊäÈë GPIO_Init(GPIOB,&GPIO_InitStructure); } void NVIC_Config() { NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //°´¼ü1ÖжÏÅäÖÃKEY1->PA0 NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2; NVIC_InitStructure.NVIC_IRQChannelSubPriority=0; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_Init(&NVIC_InitStructure); } void USART_Config() { USART_InitTypeDef USART_InitStructure; USART_InitStructure.USART_BaudRate=9600; USART_InitStructure.USART_WordLength=USART_WordLength_8b; USART_InitStructure.USART_StopBits=USART_StopBits_1; USART_InitStructure.USART_Parity=USART_Parity_No; USART_InitStructure.USART_Mode=USART_Mode_Tx|USART_Mode_Rx; USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None; USART_Init(USART1,&USART_InitStructure); USART_ITConfig(USART1,USART_IT_RXNE,ENABLE); USART_Cmd(USART1,ENABLE); //ÏÈʹÄÜ´®¿Ú»¹ÊÇÏÈ´ò¿ªÖжϣ¿ } void USART_IRQHandle() { u8 Rxdata[100]; u8 data,flag; if(USART_GetITStatus(USART2,USART_IT_RXNE)!=RESET) { USART_ClearITPendingBit(USART2, USART_IT_RXNE); Rxdata[data++]=USART_ReceiveData(USART2); GPIO_SetBits(GPIOB,GPIO_Pin_9); if(flag==1) //µÚ¶þ´Î½ÓÊÜÊý¾ÝµÆÁÁ { if(USART_GetITStatus(USART2,USART_IT_RXNE)!=RESET) { USART_ClearITPendingBit(USART2, USART_IT_RXNE); Rxdata[data++]=USART_ReceiveData(USART2); GPIO_ResetBits(GPIOB,GPIO_Pin_9); } } flag++; } } |
|
相关推荐
4个回答
|
|
#include"stm32f10x.h"
#include"string.h" //#include"stm32f10x_it.h" void RCC_Config(); void GPIO_Config(); void USART_Config(); void NVIC_Config(); //void Tx_string(u8*str); //u8 buffer[]="nihao"; u8 Txdata[100]={'0xaa', '0x55' ,'0x77' ,'0x9a' ,'0x76' ,'0x79' ,'0x88'}; u8 length; u8 i; int main(void) { RCC_Config(); GPIO_Config(); NVIC_Config(); USART_Config(); //Tx_string(buffer); length=strlen(Txdata); if (USART_GetFlagStatus(USART1, USART_IT_TXE) == SET) { //USART_ClearITPendingBit(USART2,USART_IT_TXE); while(length--) { USART_SendData(USART2,Txdata[length]); while(USART_GetFlagStatus(USART2,USART_FLAG_TXE )==1); //GPIO_ResetBits(GPIOC,GPIO_Pin_2); } } while (1); //µÈ´ýÖÐ¶Ï } /* void Tx_string(u8*str) { u8 i; u8 long; long=strlen(buffer); for(i=0;i USART_SendData(USART2,*str++); //while((USART2->SR&0X40)==0);//Ñ»··¢ËÍ,Ö±µ½·¢ËÍÍê±Ï //USART2->DR = *str++; GPIO_SetBits(GPIOB,GPIO_Pin_9); } }*/ void RCC_Config() { //RCC_TypeDef RCC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //ʹÄÜLED4/5 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); //GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); } void GPIO_Config() { GPIO_InitTypeDef GPIO_InitStructure; //ÅäÖÃLED->D4/D5 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //ÅäÖÃÍÆÍìÊä³ö GPIO_Init(GPIOC,&GPIO_InitStructure); //ÅäÖÃTX 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); //ÅäÖÃRX GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING; //ÅäÖø¡¿ÕÊäÈë GPIO_Init(GPIOA,&GPIO_InitStructure); } void NVIC_Config() { NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //°´¼ü1ÖжÏÅäÖÃKEY1->PA0 NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2; NVIC_InitStructure.NVIC_IRQChannelSubPriority=0; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_Init(&NVIC_InitStructure); } void USART_Config() { USART_InitTypeDef USART_InitStructure; USART_InitStructure.USART_BaudRate=9600; USART_InitStructure.USART_WordLength=USART_WordLength_8b; USART_InitStructure.USART_StopBits=USART_StopBits_1; USART_InitStructure.USART_Parity=USART_Parity_No; USART_InitStructure.USART_Mode=USART_Mode_Tx|USART_Mode_Rx; USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None; USART_Init(USART1,&USART_InitStructure); USART_ITConfig(USART1,USART_IT_RXNE,ENABLE); USART_Cmd(USART1,ENABLE); //ÏÈʹÄÜ´®¿Ú»¹ÊÇÏÈ´ò¿ªÖжϣ¿ } void USART_IRQHandle() { u8 Rxdata[100]; u8 data,flag; if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET) { //USART_ClearITPendingBit(USART2, USART_IT_RXNE); Rxdata[data++]=USART_ReceiveData(USART1); GPIO_SetBits(GPIOC,GPIO_Pin_2); if(flag==1) //µÚ¶þ´Î½ÓÊÜÊý¾ÝµÆÁÁ { if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET) { // USART_ClearITPendingBit(USART2, USART_IT_RXNE); Rxdata[data++]=USART_ReceiveData(USART1); GPIO_ResetBits(GPIOC,GPIO_Pin_2); } } flag++; } } |
|
|
|
改了一下还是不行,串口调试助手没反应
|
|
|
|
#include"stm32f10x.h"
#include"string.h" //#include"stm32f10x_it.h" void RCC_Config(); void GPIO_Config(); void USART_Config(); void NVIC_Config(); //void Tx_string(u8*str); //u8 buffer[]="nihao"; u8 Txdata[100]={'0xaa', '0x55' ,'0x77' ,'0x9a' ,'0x76' ,'0x79' ,'0x88'}; u8 length; u8 i; int main(void) { RCC_Config(); GPIO_Config(); NVIC_Config(); USART_Config(); //Tx_string(buffer); length=strlen(Txdata); if (USART_GetFlagStatus(USART1, USART_IT_TXE) == SET) { //USART_ClearITPendingBit(USART2,USART_IT_TXE); while(length--) { USART_SendData(USART2,Txdata[length]); while(USART_GetFlagStatus(USART2,USART_FLAG_TXE )==1); //GPIO_ResetBits(GPIOC,GPIO_Pin_2); } } while (1); //µÈ´ýÖÐ¶Ï } /* void Tx_string(u8*str) { u8 i; u8 long; long=strlen(buffer); for(i=0;i USART_SendData(USART2,*str++); //while((USART2->SR&0X40)==0);//Ñ»··¢ËÍ,Ö±µ½·¢ËÍÍê±Ï //USART2->DR = *str++; GPIO_SetBits(GPIOB,GPIO_Pin_9); } }*/ void RCC_Config() { //RCC_TypeDef RCC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //ʹÄÜLED4/5 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); //GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); } void GPIO_Config() { GPIO_InitTypeDef GPIO_InitStructure; //ÅäÖÃLED->D4/D5 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //ÅäÖÃÍÆÍìÊä³ö GPIO_Init(GPIOC,&GPIO_InitStructure); //ÅäÖÃTX 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); //ÅäÖÃRX GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING; //ÅäÖø¡¿ÕÊäÈë GPIO_Init(GPIOA,&GPIO_InitStructure); } void NVIC_Config() { NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //°´¼ü1ÖжÏÅäÖÃKEY1->PA0 NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2; NVIC_InitStructure.NVIC_IRQChannelSubPriority=0; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_Init(&NVIC_InitStructure); } void USART_Config() { USART_InitTypeDef USART_InitStructure; USART_InitStructure.USART_BaudRate=9600; USART_InitStructure.USART_WordLength=USART_WordLength_8b; USART_InitStructure.USART_StopBits=USART_StopBits_1; USART_InitStructure.USART_Parity=USART_Parity_No; USART_InitStructure.USART_Mode=USART_Mode_Tx|USART_Mode_Rx; USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None; USART_Init(USART1,&USART_InitStructure); USART_ITConfig(USART1,USART_IT_RXNE,ENABLE); USART_Cmd(USART1,ENABLE); //ÏÈʹÄÜ´®¿Ú»¹ÊÇÏÈ´ò¿ªÖжϣ¿ } void USART_IRQHandle() { u8 Rxdata[100]; u8 data,flag; if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET) { //USART_ClearITPendingBit(USART2, USART_IT_RXNE); Rxdata[data++]=USART_ReceiveData(USART1); GPIO_SetBits(GPIOC,GPIO_Pin_2); if(flag==1) //µÚ¶þ´Î½ÓÊÜÊý¾ÝµÆÁÁ { if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET) { // USART_ClearITPendingBit(USART2, USART_IT_RXNE); Rxdata[data++]=USART_ReceiveData(USART1); GPIO_ResetBits(GPIOC,GPIO_Pin_2); } } flag++; } } |
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
【嵌入式SD NAND】基于FATFS/Littlefs文件系统的日志框架实现
395 浏览 0 评论
求助!STM32F4单片机编程与设计sEMG信号采集电路问题
852 浏览 0 评论
2573 浏览 1 评论
2594 浏览 1 评论
stm32 CubeMx 怎么实现SD卡/sd nand FATFS读写测试
333 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-3-19 15:04 , Processed in 0.890551 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号