久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
stm32串口通信程序-查詢方式
[打印本頁]
作者:
51黑ren
時間:
2015-12-27 02:38
標題:
stm32串口通信程序-查詢方式
//將收到的數據返回,經測試可以,利用查詢方式
#include"stm32f10x_it.h"
#include "stm32f10x_conf.h"
void delayms(unsigned intcount);//延時程序
void RCC_Configuration(void); //時鐘配置
void USART_Configuration(void);//定義串口初始化函數
void NVIC_Configuration( void);
void Uart1_PutChar(u8 ch);
void Uart1_PutString(u8* buf , u8len);
voidGPIO1_Configuration(void);
voidGPIO_Configuration(void);
void RCC_Configuration(void)
{
ErrorStatusHSEStartUpStatus;
//使能外部晶振
RCC_HSEConfig(RCC_HSE_ON);
//等待外部晶振穩定
HSEStartUpStatus =RCC_WaitForHSEStartUp();
//如果外部晶振啟動成功,則進行下一步操作
if(HSEStartUpStatus==SUCCESS)
{
//設置HCLK(AHB時鐘)=SYSCLK
RCC_HCLKConfig(RCC_SYSCLK_Div1);
//PCLK1(APB1) = HCLK/2
RCC_PCLK1Config(RCC_HCLK_Div2);
//PCLK2(APB2) = HCLK
RCC_PCLK2Config(RCC_HCLK_Div1);
RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_4);
//啟動PLL
RCC_PLLCmd(ENABLE);
//等待PLL穩定
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) ==RESET);
//系統時鐘SYSCLK來自PLL輸出
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
//切換時鐘后等待系統時鐘穩定
while(RCC_GetSYSCLKSource()!=0x08);
}
//RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
//RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2 ,ENABLE);
}
int main(void)
{
int i;
unsigned char str[]="A";
u8 uart2_get_data;
RCC_Configuration();
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA |
RCC_APB2Periph_AFIO, ENABLE);//使能各部分時鐘
//NVIC_Configuration(); //串口中斷配置
//RCC中打開相應串口
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2 ,ENABLE);
GPIO_Configuration();
//串口1的管腳初始化
GPIO1_Configuration();
USART_Configuration();
while (1)
{
GPIO_SetBits(GPIOA,GPIO_Pin_8) ;
GPIO_SetBits(GPIOA,GPIO_Pin_11) ;
GPIO_SetBits(GPIOA,GPIO_Pin_15) ;
if(USART_GetFlagStatus(USART2, USART_FLAG_RXNE)==SET)
{
uart2_get_data = USART_ReceiveData(USART2);
for(i=0;i<1000000;i++);
USART_SendData(USART2,uart2_get_data);
while(USART_GetFlagStatus(USART2, USART_FLAG_TC) ==RESET);
}
GPIO_ResetBits(GPIOA,GPIO_Pin_11);
GPIO_ResetBits(GPIOA,GPIO_Pin_15);
for(i=0;i<1000000;i++);
}
}
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_11|GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Init(GPIOA,&GPIO_InitStructure);
}
voidGPIO1_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //管腳2
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_3; //管腳3
GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_IN_FLOATING; //浮空輸入
GPIO_Init(GPIOA, &GPIO_InitStructure); //RX初始化
}
void delayms(unsigned int count)
{
unsigned int i,j;
for(i=0;i
for(j=0;j<5000;j++);
}
void USART_Configuration(void)//串口初始化函數
{
USART_ClockInitTypeDefUSART_ClockInitStructure;
//串口參數初始化
USART_InitTypeDef USART_InitStructure;//串口設置恢復默認參數
//初始化參數設置
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_Init(USART2,&USART_InitStructure); //初始化
//USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);//使能接受中斷,在接受移位 寄存器中有數據是產生
USART_ClockInitStructure.USART_Clock =USART_Clock_Disable;
USART_ClockInitStructure.USART_CPOL =USART_CPOL_Low;
USART_ClockInitStructure.USART_CPHA =USART_CPHA_2Edge;
USART_ClockInitStructure.USART_LastBit =USART_LastBit_Disable;
USART_ClockInit(USART2,&USART_ClockInitStructure);
USART_Cmd(USART2, ENABLE); //啟動串口
}
void NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);//選擇分組方式0
NVIC_InitStructure.NVIC_IRQChannel =USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd =ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
void Uart1_PutChar(u8 ch)
{
USART_SendData(USART2,(u8) ch);
while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET);
}
void Uart1_PutString(u8* buf , u8 len)
{
u8 i;
for( i=0;i
{
Uart1_PutChar(*buf++);
}
}
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日本精品一区二区三区视频
|
91欧美精品
|
日韩在线视频一区
|
人和拘一级毛片c
|
罗宾被扒开腿做同人网站
|
久久久夜色精品亚洲
|
亚洲免费视频网址
|
精品免费国产一区二区三区
|
国产天天操
|
日韩在线视频一区
|
91看片免费版
|
国产一二区视频
|
日本天天操
|
国产精品美女www爽爽爽视频
|
久久精品色欧美aⅴ一区二区
|
欧美三区
|
香蕉一区
|
亚洲毛片在线观看
|
亚洲黄色在线免费观看
|
91麻豆精品国产91久久久久久久久
|
黄网站免费在线看
|
亚洲网址在线观看
|
波多野结衣中文视频
|
日日骚av
|
国产成人精品午夜
|
老司机午夜性大片
|
国产精品自拍视频
|
国产精品69毛片高清亚洲
|
免费看一区二区三区
|
亚洲人人舔人人
|
毛片毛片毛片毛片毛片
|
91一区二区三区在线观看
|
成人免费看片
|
美女黄视频网站
|
国产69久久精品成人看动漫
|
伊人精品在线
|
国产福利在线播放麻豆
|
国产一区二区三区在线视频
|
91在线精品播放
|
羞羞在线视频
|
日韩欧美网
|