STM32 串口发送数据(发送一个字节,以及数组)
-
#include"usart1.h"
-
//#include //加载MDK 自带的 C 函数 D:\Keil\C51\INC
-
-
//串口1 配置
-
void USART1_Config(void)
-
{
-
-
GPIO_InitTypeDef GPIO_InitStructure; //定义结构体
-
// 结构体内容在stm32f10x_gpio.h 101行 // 见库函数 P125页
-
-
USART_InitTypeDef USART_InitStructure; //定义结构体
-
// 结构体内容在stm32f10x_usart.h 76行 // 库函数的348页
-
-
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1,ENABLE);
-
//打开时钟
-
-
//初始化GPIO 见库函数 P125页
-
-
-
-
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9; //要设置的PIN
-
// GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //推挽输出
-
-
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出
-
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //输出速度
-
GPIO_Init(GPIOA,&GPIO_InitStructure); //配置 IO
-
-
-
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //RX 接收引脚
-
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空输入模式
-
GPIO_Init(GPIOA, &GPIO_InitStructure); //配置IO口
-
-
-
// 结构体内容在stm32f10x_usart.h 76行 // 库函数的348页
-
-
USART_InitStructure.USART_BaudRate=9600; //设定波特率
-
USART_InitStructure.USART_WordLength=USART_WordLength_8b; //8位数据
-
USART_InitStructure.USART_StopBits=USART_StopBits_1; //停止位1位
-
USART_InitStructure.USART_Parity=USART_Parity_No; //无校验位
-
USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;//无硬件控制 CTS RTS
-
USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx; //发送接收 使能
-
USART_Init(USART1,&USART_InitStructure); //配置USART1
-
-
USART_Cmd(USART1,ENABLE); //使能 串口1
-
}
-
-
void USART1_Send_Byte(unsigned char byte) //串口发送一个字节
-
{
-
USART_SendData(USART1, byte); //通过库函数 发送数据
-
while( USART_GetFlagStatus(USART1,USART_FLAG_TC)!= SET);
-
//等待发送完成。 检测 USART_FLAG_TC 是否置1; //见库函数 P359 介绍
-
-
}
-
-
-
//发送字符串 函数 应用指针 方法
-
void UART1_Send_Str(unsigned char *s)//发送字符串 函数 应用指针 方法
-
{
-
unsigned char i=0; //定义一个局部变量 用来 发送字符串 ++运算
-
-
while(s[i]!='\0') // 每个字符串结尾 都是以 \0 结尾的
-
{
-
USART_SendData(USART1,s[i]); //通过库函数 发送数据
-
while( USART_GetFlagStatus(USART1,USART_FLAG_TC)!= SET);
-
//等待发送完成。 检测 USART_FLAG_TC 是否置1; //见库函数 P359 介绍
-
-
i++; //i++一次
-
}
-
-
}
-
-
-
void UART1_Send_Array(unsigned char send_array[],unsigned char num) //两个参数 一是数组(的数据) 二是数组长度1-255
-
{
-
//串口发送
-
unsigned char i=0; //定义一个局部变量 用来 发送字符串 ++运算
-
-
-
while(i
-
{
-
-
USART_SendData(USART1,send_array[i]); //通过库函数 发送数据
-
while( USART_GetFlagStatus(USART1,USART_FLAG_TC)!= SET);
-
//等待发送完成。 检测 USART_FLAG_TC 是否置1; //见库函数 P359 介绍
-
-
i++; //值 加一
-
}
-
-
}