⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usart.c

📁 stm32初级例程
💻 C
字号:
/**************************************************************
**  精英STM32开发板
**  版本:V1.0
**  功能:	不断查询串口状态,看串口是否收到数据
			串口1配置如下
			115200,8,N,1
			本串口程序是接收到什么字符就返回什么字符
			使用我提供的串口调试工具,选择【串口超级终端】波特率设置115200
***************************************************************/

#include <stm32f10x_lib.h>                        // STM32F10x Library Definitions
#include <stdio.h>
#include "STM32_Init.h"                           // STM32 Initialization


/*----------------------------------------------------------------------------
  从串口发送一个字节数据
  Write character to Serial Port.
 *----------------------------------------------------------------------------*/
int SendChar (int ch)  {

  //等待发送结束
  while (!(USART1->SR & USART_FLAG_TXE));
  //将数据放入发送寄存器
  USART1->DR = (ch & 0x1FF);

  return (ch);
}


/*----------------------------------------------------------------------------
  从串口读取一个字节数据,直到读到数据才返回
  Read character to Serial Port.
 *----------------------------------------------------------------------------*/
int GetKey (void)  {

  //等待接收结束
  while (!(USART1->SR & USART_FLAG_RXNE));
  //从接受寄存器读取数据并返回
  return ((int)(USART1->DR & 0x1FF));
}


/*----------------------------------------------------------------------------
  MAIN function
 *----------------------------------------------------------------------------*/
int main (void) {
  // STM32 setup 初始化串口
  stm32_Init ();  
  //串口实验开始
  printf ("Polling mode Serial I/O Example\r\n\r\n");

  while (1) {                                     // Loop forever
    unsigned char c;
    //提示从串口输入1个字符
    printf ("Press a key. ");
    //从串口接收1个字符
	  c = getchar ();
	  //从串口输出回车换行
    printf ("\r\n");
    //从串口输出接收到的字符
    printf ("You pressed '%c'.\r\n\r\n", c);
  } // end while
} // end main

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -