資源簡介
實現(xiàn)兩個超聲波模塊的數(shù)字通信,可接收多位字符和數(shù)字,發(fā)送端通過串口1連接電腦接收數(shù)據(jù),接收端采用液晶顯示,接收和發(fā)送模塊通過串口通信,超聲波模塊的作用是代替杜邦線的連接,采用隊列的形式接收和發(fā)送數(shù)據(jù)

代碼片段和文件信息
//接收程序
#include?“l(fā)ed.h“
#include?“delay.h“
#include?“sys.h“
#include?“key.h“
#include?“usart.h“
#include?“Manchester.h“
#include?“usart2-5.h“
#include?“Commun.h“
#include?“l(fā)cd.h“
extern?u8?crc_check_flag;
extern?u8?Secode_Data;
extern?Secode_Queue?Manchester_buff;
u8?Rec_Buff[100];
void?GPIO_Init_c(void);
int?main(void)
{
u8?i?cnt?old_cnt;
int?x?=?0?y?=?75;
delay_init(); ???? ?//延時函數(shù)初始化 ??
LED_Init(); ?? //初始化與LED連接的硬件接口
KEY_Init();
uart_init(115200);
USARTx_Configuration(115200);
LCD_Init();
LCD_Clear(BLUE);
POINT_COLOR?=?RED;
BACK_COLOR??=?WHITE;
// GPIO_Init_c();
Receive_Init(); //接收隊列初始化
printf(“接收端\n“);
while(1)
{
LCD_ShowString(20?30?200?16?16?“data?communication“);
LCD_ShowString(20?50?200?16?16?“Receive_data:?“);
if?(crc_check_flag)
{
cnt?=?Queue_Length(Manchester_buff);
for?(i=0;?i {
Rec_Buff[i]?=?Queue_Out(&Manchester_buff);
printf(“%d?“?Rec_Buff[i]);
LCD_ShowString(x?+?8?*?i?y?200?16?16?&Rec_Buff[i]);
}
printf(“接收**************************成功\n“);
if?(cnt? {
for(i=cnt;?i {
LCD_ShowString(x?+?8?*?i?y?200?16?16?“?“);
}
}
crc_check_flag?=?0;
old_cnt?=?cnt;
}
// GPIO_SetBits(GPIOBGPIO_Pin_11);
// delay_ms(20);
// GPIO_ResetBits(GPIOBGPIO_Pin_11);
// delay_ms(20);
}
}
void?GPIO_Init_c(void)
{
?GPIO_InitTypeDef?GPIO_InitStructure;
?RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB?ENABLE);
GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_11; ?//LED0-->PB.5?端口配置
?GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_Out_PP;? ?//推挽輸出
?GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz; ?//IO口速度為50MHz
?GPIO_Init(GPIOB?&GPIO_InitStructure); ?//根據(jù)設(shè)定參數(shù)初始化GPIOB.5
?GPIO_SetBits(GPIOBGPIO_Pin_11);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????7448??2015-07-15?14:53??HARDWARE.zip
?????文件????????1905??2015-07-14?17:22??mainRX.c
?????文件????????1107??2015-07-14?17:21??mainTx.c
評論
共有 條評論