双单片机通信

有两个STM32F103R6构成双机通信电路,实现A机发送字符串“I am device A, please answer.\n”,B机接收A、B机同时显示“I am device A, please answer.”;B机发送字符串“I am device B, please answer.\n”,A机接收A、B机同时显示“I am device B, please answer.”。电路图如图

双单片机通信_第1张图片

一、 代码编写

(一)A机设备配置

1 双击桌面的STM32CubeIDE图标。

2 单击“Start new STM32 project”按钮,出现“Target Selection”(目标选择)对话框,在“Part Number”框里输入STM32F103R6或者F103R6,可以看到“MCUs/MPUs List 2 items”有两个选项:LQFP64和TFBGA64。这里选择“LQFP64”。

3 单击“Next”按钮,出现“STM32 Project”对话框,在“Project Name”框输入工程名“wirelessA”,其他选项保持默认设置。

4 单击“Finish”按钮,出现“Pinout & Configuration”对话框。

5 单击Pinout & Configuration,接着单击Connectivity,单击USART1。

6 在Mode下拉列表框中选择Asynchronous。

7 单击Paramefer Settings,设置波特率为19200,其余默认。

8 根据任务要求,需要将PA1、PA2、PA3、PC0、PC1、PC2、PC3、PC4、PC5、PC6、PC7设置为输出。单击

,自动生成STM32 project工程框架。

(二)A机代码编写

1 编写头文件。单击Core,右击Inc,选择new,选择File,输入文件名lcd1602.h,如图2-11所示。lcd1602.h头文件代码同项目二。

2 main函数代码编写如下(阴影部分):

/* USER CODE BEGIN Includes */

#include "LCD1602.h"

#include

/* USER CODE END Includes */

 /* USER CODE BEGIN PV */

uint8_t rf=0;

uint8_t r[1];

uint8_t s[1];

/* USER CODE END PV */

/* USER CODE BEGIN PFP */

void LCDDispString(char str[]);

void send_string(char str[]);

你可能感兴趣的:(单片机,嵌入式硬件)