STM32串口通讯

#include <stm32f10x_lib.h>
#include "mysysinit.h"
void my_systeminit()
{
 unsigned char temp=0x00;
 FlagStatus Flag;
 ErrorStatus HSEStartUpstatus;
 RCC_DeInit();    
 RCC_HSEConfig(RCC_HSE_ON); 
 HSEStartUpstatus=RCC_WaitForHSEStartUp();
 while(HSEStartUpstatus!=SUCCESS);
 RCC_HCLKConfig(RCC_SYSCLK_Div1);
 RCC_PCLK1Config(RCC_HCLK_Div1);
 RCC_PCLK2Config(RCC_HCLK_Div2);

 RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);
 RCC_PLLCmd(ENABLE);
 Flag=RCC_GetFlagStatus(RCC_FLAG_PLLRDY);
 RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
 FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
 FLASH_SetLatency(FLASH_Latency_2);
 while(Flag!=SET)Flag=RCC_GetFlagStatus(RCC_FLAG_PLLRDY);
 temp=RCC_GetSYSCLKSource();
 while(temp!=0x08)temp=RCC_GetSYSCLKSource();

 

////////////////////////////////////////////////////////////////////////

//在中断的c文件下找到串口中断

void USART1_IRQHandler(void)
{
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
  { 
    USART_SendData(USART1, 'a'); //发送一位数据
    GPIO_SetBits(GPIOC,GPIO_Pin_7);
  USART_ClearITPendingBit(USART1, USART_IT_RXNE);

  USART_ITConfig(USART1, USART_IT_TXE, ENABLE);
  }
  if(USART_GetITStatus(USART1, USART_IT_TXE) != RESET)
  {  
  
     USART_SendData(USART1, 'b');
       USART_ITConfig(USART1, USART_IT_TXE, DISABLE);
  
  } 

}
////////////////////////

#include <stm32f10x_lib.h>
#include "mysysinit.h"
void my_systeminit()
{
 unsigned char temp=0x00;
 FlagStatus Flag;
 ErrorStatus HSEStartUpstatus;
 RCC_DeInit();    
 RCC_HSEConfig(RCC_HSE_ON); 
 HSEStartUpstatus=RCC_WaitForHSEStartUp();
 while(HSEStartUpstatus!=SUCCESS);
 RCC_HCLKConfig(RCC_SYSCLK_Div1);
 RCC_PCLK1Config(RCC_HCLK_Div1);
 RCC_PCLK2Config(RCC_HCLK_Div2);

 RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);
 RCC_PLLCmd(ENABLE);
 Flag=RCC_GetFlagStatus(RCC_FLAG_PLLRDY);
 RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
 FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
 FLASH_SetLatency(FLASH_Latency_2);
 while(Flag!=SET)Flag=RCC_GetFlagStatus(RCC_FLAG_PLLRDY);
 temp=RCC_GetSYSCLKSource();
 while(temp!=0x08)temp=RCC_GetSYSCLKSource();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值