历史上的今天

今天是:2024年10月23日(星期三)

正在发生

2019年10月23日 | stm32f103串口1串口2收发程序

发布者:asdfrewqpp 来源: eefocus关键字:stm32f103  串口1  串口2  收发程序 手机看文章 扫描二维码
随时随地手机看文章

#include "stm32f10x.h"  

#include "string.h"

#include "stdio.h"  

void delay(void);  

void GPIO_Configuration(void); 

void uart_init();

extern void USART_OUT(USART_TypeDef* USARTx, uint16_t *Data,...);

void RCC_Configuration(void)  

{  

SystemInit();   

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|

RCC_APB2Periph_GPIOA|

RCC_APB2Periph_GPIOB|

RCC_APB2Periph_GPIOD |

RCC_APB2Periph_AFIO| 

RCC_APB2Periph_GPIOC,ENABLE); 


RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);

}

void NVIC_Configuration(void)  

{  

 

  NVIC_InitTypeDef NVIC_InitStructure;   

  

  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);       

    

  



  NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn|USART2_IRQn;     //ÉèÖô®¿Ú1ÖжϠ

  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;         //ÇÀÕ¼ÓÅÏȼ¶ 0  

  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;                //×ÓÓÅÏȼ¶Îª0  

  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                   //ʹÄÜ  

  NVIC_Init(&NVIC_InitStructure);  



}  





void UART_PutChar(USART_TypeDef* USARTx, uint8_t Data)  

{  

    USART_SendData(USARTx, Data);  

    while(USART_GetFlagStatus(USARTx, USART_FLAG_TC) == RESET){}  

}  

void UART_PutStr (USART_TypeDef* USARTx, uint8_t *str)    

{    

    while (0 != *str)    

    {    

        UART_PutChar(USARTx, *str);    

        str++;    

    }    

}





int main(void)  

{  

RCC_Configuration();

GPIO_Configuration();  

NVIC_Configuration(); 

uart_init();



while(1)  

  {  

   GPIO_ResetBits(GPIOC,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13);  

delay();  

   GPIO_SetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_8|GPIO_Pin_13);  

   delay();  

   GPIO_ResetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_8|GPIO_Pin_13); 

delay();   

   GPIO_SetBits(GPIOC,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13);  

   delay();   

 

//USART_SendData(USART1, '1');  

UART_PutStr(USART1,(uint8_t*)("234"));

UART_PutStr(USART2,(uint8_t*)("234"));

  }  

}  





void GPIO_Configuration(void)  

{    

  GPIO_InitTypeDef GPIO_InitStructure;    

  GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_13;     

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;  GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;     

GPIO_Init(GPIOC,&GPIO_InitStructure);  



GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_2;                  //USART1 TX  

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;            //¸´ÓÃÍÆÍìÊä³ö  

  GPIO_Init(GPIOA, &GPIO_InitStructure);                     //A¶Ë¿Ú   

   /* Configure USART2 Rx (PA.03) as input floating */

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10|GPIO_Pin_3;                 //USART1 RX  

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;      //¸´ÓÿªÂ©ÊäÈë  

  GPIO_Init(GPIOA, &GPIO_InitStructure);                    //A¶Ë¿Ú   


}  

 

void uart_init()

{

USART_InitTypeDef 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_Tx | USART_Mode_Rx;


USART_Init(USART1, &USART_InitStructure);  

 USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);                    //ʹÄܽÓÊÕÖжϠ 

USART_ITConfig(USART1, USART_IT_TXE, ENABLE);                     //ʹÄÜ·¢ËÍ»º³å¿ÕÖжϠ


USART_Init(USART2, &USART_InitStructure); 

USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);                    //ʹÄܽÓÊÕÖжϠ 

USART_ITConfig(USART2, USART_IT_TXE, ENABLE);                     //ʹÄÜ·¢ËÍ»º³å¿ÕÖжϠ


USART_Cmd(USART1, ENABLE);      

USART_Cmd(USART2, ENABLE);      

}



void USART1_IRQHandler(void)      //´®¿Ú1 ÖжϷþÎñ³ÌÐò  

{  

static u8 RX_dat[256]={0};static int i;     

if(USART_GetITStatus(USART1,USART_IT_RXNE)==SET)//USART_IT_RXNE£º½ÓÊÕÖжϠ 

{   

USART_ClearITPendingBit(USART1,USART_IT_RXNE); 

RX_dat[i++]=USART_ReceiveData(USART1);    

  }

if(RX_dat[0]=='{' &&  RX_dat[i-1]=='}')

{

//UART_PutStr(USART2,"fdg");

}

}  

void USART2_IRQHandler(void)      //´®¿Ú2 ÖжϷþÎñ³ÌÐò  

{  

  unsigned int i;  

    

}  



关键字:stm32f103  串口1  串口2  收发程序 引用地址:stm32f103串口1串口2收发程序

上一篇:stm32f103之串口实验
下一篇:STM32串口USART1程序

推荐阅读

当冰冷的高科技芯片与一群对社会有责任、有梦想的人相遇,会激发出怎样的温度?他们相信:教育是最好的礼物,参与和体验才是真正的付出。办公桌上的栗子加班、客户、星巴克,Josh的日常和所有的TI人一样被这些关键词包裹着,但他的办公桌上有一个与众不同的装饰品,那是一枚因为还未完全成熟所以有着淡褐色外壳的栗子,每当他的眼光扫过这枚栗子,就会有一...
摘要:为针对一般的数据采集系统精度较低、价格较高的问题,设计了一种低成本、高精度的多路数据采集系统系统由上、下位机两部分组成,上、下位机通过RS-485总线进行通信。下位机选用C8051F350作为主控制器,A/D转换采用C8051F350内部24位∑-△型ADC,并设计了RS-485总线接口,便于接入RS-485总线网络、上位机软件使用LabVIEW编写,具有较好的人机交互界面...
早些时候,三星电子获得美国电信运营商Verizon高达7.9万亿韩元(约合67亿美元)的订单,并将在美国提供无线通信解决方案。有知情人士透露,Verizon已要求三星不要在该份订单中使用中国制造的部件。据韩媒THE ELEC报道,三星网络(Samsung Network)此前使用由中国公司深南电路和楠梓电子生产的PCB作为其网络工具包,同时韩国大德电子(Daeduck Electron...
10月23日,水晶光电发布2021年第三季度业绩报告。公告显示,水晶光电第三季度实现营业收入11.34亿元,同比增长27.02%;归属于上市公司股东的净利润1.79亿元,同比增长34.55%;归属于上市公司股东的扣除非经常性损益的净利润1.73亿元,同比增长50.45%;基本每股收益0.13元。2021年前三季度,水晶光电实现营业收入28.55亿元,同比上升26.35%;归母净利润3.54...

史海拾趣

问答坊 | AI 解惑

用MAX712芯片自制的充电器

一、线路图:   1、rsense电阻取1欧姆时。充电电流为250MA,0.5欧姆时,电流为520MA,2N6109用TIP42代替,SHUNT电阻为限流电阻,大约1K,其他参数如图。   转绢流后充电机充电电流是原来的1/8还是1/16取决于PGM3脚的接法:   Rsense电阻两 ...…

查看全部问答∨

ARM9的ADC怎么和外部电路连接

请问ARM9的ADC怎么和外部的放大电路连接?…

查看全部问答∨

quartus功能仿真出现致命错误。 Fatal error: Module: quartus_sim.exe Exception: Access Violat

*** Fatal error: Module: quartus_sim.exe Exception: Access Violation Stack Trace: 01a314e6: SDB_DFF_INFO::set_last_clock_value() + 0x34 (tsm_sdb) 01a03144: EDS_ENGINE::propagate() + 0xb0 (TSM_EDS) 01a03321: EDS_ENGINE::propaga ...…

查看全部问答∨

请问

刚涉足这个领域,要配硬件环境,不知道哪个开发语言好呢.…

查看全部问答∨

FTF印象_4

名字很有吸引力的一个报告(Designint the \"impossible\" Tablet),但不知道什么原因而取消未能进行, 可以通过资料看看是介绍什么的。…

查看全部问答∨

LM4871/CSC8002低电压3W功率放大器IC应用电路原理图说明

LM4871/CSC8002 是一个BTL 桥连接的音频功率放大器.它能够在5V 电源电压下给一个3Ω 负载提供THD 小于10%、平均值为3W 输出功率。在关闭模式下电流的典型值为0.6uA. LM4871/CSC8002 是为提供大功率,高保真音频输出而专门设计的.它仅仅需要少量 ...…

查看全部问答∨

【求助】MSP430F149 32k晶振不振

MSP430F149 32k晶振不振 开始的时候,上电发现32K和6M的晶振全不振,后来经过测量,发现/RST信号为0V,原来/RST信号被我弄错了。 后来修改的电路,/RST信号为高,6M的晶体工作正常,但是32K的没有工作。只输出一个有3V左右直流偏置、有不稳定0.5V ...…

查看全部问答∨

ZigBee网络是否容许有的设备加密有的不加密

我现在在测试zigbee加密问题,协调器不使用加密,而路由器使用机密的时候,发现路由加入不了网络,不知到为什么。请哪位高手指教一下。 哦,我加密的时候只在f8Config.cfg上面把DSECURE设成1.…

查看全部问答∨

从剖析电脑电源开始--详解析开关电源工作原理

下面转载的这篇文章,是一个国外网站几年前的文章,对于相当多的电源初学者而言,这篇文章还是非常有参考价值的,希望对读者朋友起到一定的帮助作用。由于文中有很多专业词汇,翻译过程中可能会有所纰漏和不足,希望电源达人能够多多指正,不胜感激 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多往期活动

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved