历史上的今天
返回首页

历史上的今天

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

正在发生

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

2019-10-23 来源:eefocus

#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;  

    

}  



推荐阅读

史海拾趣

BURGESS公司的发展小趣事

BURGESS一直以其专业的服务和优质的管理而著称。它非常重视客户的需求和体验,为每一个拥有超级游艇的客户提供量身定制的服务方案。无论是游艇的销售、采购、租赁还是技术顾问和经营管理,BURGESS都能提供全面而专业的服务。这种对细节的关注和对质量的追求,使得BURGESS赢得了众多高端客户的信任和青睐,连美国总统特朗普的超级游艇都是由BURGESS负责管理的。

尽管无法提供BURGESS在电子行业的发展故事,但以上关于其在游艇经纪行业的几个重要发展事实,充分展示了BURGESS的卓越实力和专业水平。如需更多关于BURGESS的信息,建议查阅其官方网站或相关新闻报道。

Caliber公司的发展小趣事

在环保意识日益增强的今天,Caliber公司积极响应国家号召,推动绿色环保生产。公司投入大量资金引进环保设备和技术,减少生产过程中的污染排放。同时,Caliber还研发了一系列节能型电子产品,为用户提供更加环保的选择。这些举措不仅提升了公司的社会形象,也为公司的可持续发展注入了新的动力。

Caddock公司的发展小趣事

为了进一步提升市场竞争力,Caddock公司积极寻求国际合作。通过与全球知名电子企业的合作,公司成功将产品打入国际市场,实现了品牌影响力的扩大和市场份额的提升。同时,公司还积极参加国际电子展会和技术交流活动,不断吸收行业前沿技术,推动自身技术创新和产业升级。

Bipolar Integrated Technology Inc公司的发展小趣事

随着技术的成熟,BIT开始积极寻找市场机会。他们与多家电子设备制造商建立了合作关系,将自家的集成电路应用于各种电子产品中。通过与这些合作伙伴的紧密合作,BIT的产品逐渐在市场上占据了一席之地,公司规模也逐渐扩大。

捷嘉电子(Chequers Electronic)公司的发展小趣事

捷嘉电子在成立初期面临着巨大的挑战。那是一个智能电子产品刚刚开始兴起的时代,市场竞争激烈。公司创始人余文跃凭借对电子行业的深刻理解和对技术创新的执着追求,决定投身于智能控制器的研发与生产。在初创阶段,资金紧张、人才短缺、市场推广困难重重。但余文跃凭借着坚韧不拔的毅力,带领团队攻克了一个又一个技术难题,逐渐在市场上站稳了脚跟。

CET Technology公司的发展小趣事

随着数字化转型的深入,CET Technology紧跟时代步伐,成功研发出数字化安全生产管控平台。该平台通过整合配电、给水、电梯、消防、空调、安防等各系统,建立统一的安全物联感知平台,实现对安全生产各要素的在线监测。利用3D可视化技术,关键信息得以直观呈现,为企业的安全生产管理提供了有力支持。此外,CET还引入了AI技术,对安全风险进行精准预测,助力企业防范和应对各类安全事件。

问答坊 | AI 解惑

急救!关于protel 99se的仿真

当我在对一个电路进行仿真时总是出现这些错误,但我又不知道什么意思,请各位高手指点一下。 非常感谢! C3 Error: Pin order data (PINS=1:[]) not in READ ONLY field 4. Pins sorted by pin-name. C3 Error ...…

查看全部问答>

电气柜内线号标法?

做电气的几年中,我发现有些厂家线号是头尾一致(为同一线号),这种标法后期维护查线较烦,也有厂家头尾一不致(比如说A另一头B,A头标志为B头的电气元件及其的输入/输出点号,B头标志为A头的电气元件及其的输入/输出点号),这种方法线号有时会较 ...…

查看全部问答>

IPCWorks Asia 2008十月引领绿色制造潮流

从无铅、RoHS到无卤素,再到PoHS,业界对环保材料的“门槛”越设越高,未来的绿色之路将走向何处?今年10月15-16日高交会电子展期间,品牌研讨会\"IPCWorks Asia\"将再次在深圳举办,本届会议的主题是\"无铅/无卤素制造\",届时众多业内无卤技术专 ...…

查看全部问答>

rt12864

我想rt12864所有的型号内部都是一样的吗?…

查看全部问答>

找两名兼职的WinCE内核和驱动开发人员

找两名兼职的WinCE内核开发人员,要求熟悉Marvell Xscale 系列CPU的内核和驱动开发工作, 要求熟悉一款以上以下的CPU: PXA255,PXA270,PXA310,PXA300,PXA320,PXA168. 地点在北京.有PDA或智能手机开发经验的人最佳. 熟悉三星的S3C6410的也可以,我 ...…

查看全部问答>

SqlCE PULL正常 SubmitSql也是正常的. 但是在 PUSH时出错. 请会的指点一下.

程序如下:             string _strRemoteConnect = \"provider=sqloledb;data source=192.168.1.99;Initial Catalog=zls;User ID=sa;\";             SqlCeRe ...…

查看全部问答>

用VHDL设计一个倒计时计数器,预置一个四位十进制数

有冇朋友EDA编程叻噶??帮帮手啊·~~        用VHDL设计一个倒计时计数器,预置一个四位十进制数,每个时钟脉冲到来减1,减到0即停止,发出时间到的报警信号。报警时,用50hz驱动蜂鸣器,发出报警声音。只提供一个1khz信号的 ...…

查看全部问答>

CETK怎么测试第三方的WIFI驱动??(急求)

小弟超菜 现在领的任务是用CETK测试无线网卡驱动 系统wince5.0,无线网卡i8686 开发板是自己公司做的,上面带的无线网卡驱动不是微软cetk中默认测试例子,看说明这种第三方驱动需要自行加入CETK 眼下问题关键就是怎么把Tux.dll和驱动的.dll连接 ...…

查看全部问答>

“运放”/“运算放大器”技术问答精粹

转自:电子工程专辑 运放是运算放大器的简称。在实际电路中,通常结合反馈网络共同组成某种功能模块。由于早期应用于模拟计算机中,用以实现数学运算,故得名“运算放大器”,此名称一直延续至今。运放是一个从功能的角度命名的电路单元,可以由分 ...…

查看全部问答>

ST编译设置问题

在用ST工程时,编译设置改为: Memory 选择 Long Stack(+modsl) 就会出现下面问题: #error clnk Debug\\stm8s208.lkf:1 symbol f__stext not defined(Debug\\stm8_interrupt_vector.o ) The command: "clnk -m Debug\\stm8s208.map -l"C ...…

查看全部问答>