博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
串口 (二) 串口硬件及操作-stm32
阅读量:4285 次
发布时间:2019-05-27

本文共 1882 字,大约阅读时间需要 6 分钟。

  • stm32 为 ARM cortex-m3 架构
  • 串口收发流程与51架构没有区别
  • 配置
void USART1_Config(void){	GPIO_InitTypeDef GPIO_InitStructure;	USART_InitTypeDef USART_InitStructure;		GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_9;	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;	GPIO_Init(GPIOA, &GPIO_InitStructure);	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;	GPIO_Init(GPIOA, &GPIO_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_HardwareFlowControl = USART_HardwareFlowControl_None;	USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;	USART_Init(USART1, &USART_InitStructure);	USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);	USART_ClearFlag(USART1,USART_FLAG_TC);//清除USARTx的待处理标志位	USART_Cmd(USART1, ENABLE);}
void USART_SendData(USART_TypeDef* USARTx, uint16_t Data){  /* Check the parameters */  assert_param(IS_USART_ALL_PERIPH(USARTx));  assert_param(IS_USART_DATA(Data));       /* Transmit Data */  USARTx->DR = (Data & (uint16_t)0x01FF); // 发1. 将数据放进寄存器}int fputc(int ch, FILE *f){		/* 发送一个字节数据到USART1 */		USART_SendData(USART1, (uint8_t) ch); 				/* 等待发送完毕 */		while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);	//发2. 放入寄存器,然后开始发送,发送完成,为 SET(1)				return (ch);}
uint16_t USART_ReceiveData(USART_TypeDef* USARTx){
/* Check the parameters */ assert_param(IS_USART_ALL_PERIPH(USARTx)); /* Receive Data */ return (uint16_t)(USARTx->DR & (uint16_t)0x01FF); // 收2. 然后 从寄存器读取数据}/// 重定向c库函数scanf到USART1int fgetc(FILE *f){
/* 等待串口1输入数据 */ while (USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET); // 收1. 来数据之后会将 寄存器 SET(置1) return (int)USART_ReceiveData(USART1); //}

转载地址:http://yaigi.baihongyu.com/

你可能感兴趣的文章
Java 进阶 -- final 解析
查看>>
VS 2013 Professional 安装问题
查看>>
Xamarin.Forms.Xaml.XamlParseException: No embeddedresource found for
查看>>
error: Mono.Android could not be found
查看>>
使用 RDCMan
查看>>
Xamarin 实现 Button LongClick 和 Touch
查看>>
Xamarin 进阶文档
查看>>
在 Xamarin Forms 中实现 Banner
查看>>
Android 加载本地图片路径
查看>>
Android CPU 架构详解
查看>>
Android
查看>>
Android UncaughtExceptionHandler 原理分析
查看>>
Linker 分析器
查看>>
Android APP 检测安装打开 APK 三步操作
查看>>
Xamarin.Forms Performance on Android
查看>>
AndroidManifest.xml <uses-feature> 和 <uses-permisstion>
查看>>
No toolchains found in the NDK toolchains folder for ABI with prefix: mipsel-linux-android
查看>>
【Java】JSP入门
查看>>
【JAVA】Session
查看>>
【Java】EL和JSTL
查看>>