工程代码: 8_usart1_查询发送.rar
一个数据字(8或9位),最低有效位在前
- * 修改Date:2011.6.23 21:00
-
* 功能描述:打开串口调试软件(网上很多可以自己下一个),系统板下载完程序后,
-
按电源开关重起,看PC机上显示数据是否为03,试着改变main() 中
-
函数USART_SendData(USART1,(u16)3)中“3”这个数据,编译后下载到
-
系统板看效果如何。
-
发送一个u16数据,闪烁led,延时1s 时间
-
注意16进制查看
-
-
使能查询方式,没有使用中断方式
- #include "stm32f10x_lib.h"
#include "delay.h"
#include "rcc.h"
#include "led.h"
#include "usart1.h"
int main()
{
u8 dat = 0;
RCC_Configuration();
delay_init();
LED_Init();
USART1_GPIO_Configuration();
USART1_Configuration();
while(1)
{
USART_SendData(USART1,(u16)3); //发送数据
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);//等待发送完毕
GPIO_WriteBit(GPIOA, GPIO_Pin_8,(BitAction)dat);
GPIO_WriteBit(GPIOD, GPIO_Pin_2,(BitAction)dat);
dat = 1 - dat;
delay_s(1);
}
return 0;
}
- #ifndef __USART1_H
-
#define __USART1_H
-
-
#include "stm32f10x_type.h"
-
#include "stm32f10x_gpio.h"
-
#include "stm32f10x_usart.h"
-
-
void USART1_GPIO_Configuration(void);//管脚配置
-
void USART1_Configuration(void);
-
-
#endif
- #include "usart1.h"
-
-
/**********************************************************************
-
* 名 称:GPIO_Configuration()
-
* 功 能:IO配置
-
* 入口参数:
-
* 出口参数:
-
-----------------------------------------------------------------------
-
* 说明:
-
***********************************************************************/
-
void USART1_GPIO_Configuration(void)
-
{
-
GPIO_InitTypeDef GPIO_InitStructure;
-
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //管脚9
-
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
-
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出
-
GPIO_Init(GPIOA, &GPIO_InitStructure); //TX初始化
-
-
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //管脚10
-
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空输入
-
GPIO_Init(GPIOA, &GPIO_InitStructure); //RX初始化
-
}
-
-
/**********************************************************************
-
* 名 称:USART_Configuration()
-
* 功 能:串口配置
-
* 入口参数:
-
* 出口参数:
-
-----------------------------------------------------------------------
-
* 说明:
-
***********************************************************************/
-
void USART1_Configuration(void) //串口初始化函数
-
{
-
//串口参数初始化
-
USART_InitTypeDef USART_InitStructure; //串口设置恢复默认参数
-
USART_ClockInitTypeDef USART_ClockInitTypeDefStructure;
-
-
//初始化参数设置
-
USART_InitStructure.USART_BaudRate = 9600; //波特率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;//无流控制
-
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//打开Rx接收和Tx发送功能
-
//初始化时钟
-
USART_ClockInitTypeDefStructure.USART_Clock = USART_Clock_Disable;
-
USART_ClockInitTypeDefStructure.USART_CPOL = USART_CPOL_Low;
-
USART_ClockInitTypeDefStructure.USART_CPHA = USART_CPHA_2Edge;
-
USART_ClockInitTypeDefStructure.USART_LastBit = USART_LastBit_Disable;
-
-
USART_Init(USART1, &USART_InitStructure); //初始化
-
USART_ClockInit(USART1, &USART_ClockInitTypeDefStructure);
-
USART_Cmd(USART1, ENABLE); //启动串口
-
-
//使能 时钟,我们在 rcc中使能
-
//RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
-
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 , ENABLE);
-
}
阅读(650) | 评论(0) | 转发(1) |