我目前正在学校做一个项目,我和我的团队应该制作游戏“炸弹人”并在 STM32F4-Discovery 卡(上面有一个基于 ARM 的处理器)上执行它。游戏显示在连接到发现卡的小型 LCD 触摸屏上,触摸屏也用作游戏的控制器。游戏现在可以玩了,一切都正确执行,你可以独自对抗三个 AI 角色。游戏和所有硬件初始化完全用 C 语言编写。
现在我们决定要在游戏中实现多人游戏,这意味着我们将有两种设置 STM32F4-Discovery 卡和 LCD 触摸屏。每个设置控制同一游戏地图上的一名玩家。我们应该通过 USART 连接这两个设置。
我的问题是,我们如何让这两张 STM32F4-Discovery 卡进行通信并显示相同的游戏地图?我试图用谷歌搜索它但没有任何成功,所以我现在在 stackoverflow 上向你求助。
编辑:我根据 Unwind 提供的信息添加了一个后续问题。
跟进问题:
我们有很多预先编写的文件,可以用来启动我们的硬件等。其中一个文件称为 STM32F4xx-usart.c。它包含一个功能:
void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct).
USART_InitStruct 看起来像这样(它是在我们得到的代码中预定义的):
typedef struct{
uint32_t USART_BaudRate;
uint16_t USART_WordLength;
uint16_t USART_StopBits;
uint16_t USART_Parity;
uint16_t USART_Mode;
uint16_t USART_HardwareFlowControl;
} USART_InitTypeDef;
我猜我将不得不使用这个结构来形成两个新的结构,它们将保存我的主卡和我的从卡的值。
我的问题是:如何编写这两个结构以便将其传递给 init_USART() 函数?您不需要提供任何值,只需要提供语法。
我试过了
struct USART1_initStruct{
uint32_t USART_BaudRate;
uint16_t USART_WordLength;
uint16_t USART_StopBits;
uint16_t USART_Parity ;
uint16_t USART_Mode ;
uint16_t USART_HardwareFlowControl;
} U1IS = {9600, USART_WordLength_9b, USART_StopBits_1, USART_Parity_No, USART_Mode_Tx, USART_HardwareFlowControl_None};
然后将此结构传递给函数,但出现错误:
error: expected expression before 'struct'