sou*_*ity -4 c strstr stm32f4 sim800
我正在尝试UART使用STM32F407V6T6和CubeMx.
因为我已经发布了一些strstr()功能问题.这是一些新问题.
这是代码:
char rxBuff[10];
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART2_UART_Init();
Green_Blink(100);
Orange_Blink(100);
Blue_Blink(100);
Red_Blink(100);
while (1)
{
HAL_UART_Transmit_IT(&huart2,(uint8_t*)"hello\r\n",10);
HAL_Delay(1000);
Orange_Blink(100);
if (strstr(rxBuff,"hi"))
{
}
}
}
Run Code Online (Sandbox Code Playgroud)
这里我正在做的是我正在hello\r\n使用发送中断进行传输.发射后,我检查了像某些值hi在rxBuff[10].
在这个特定的代码中,我没有收到任何我刚创建缓冲区并检查它是否包含的内容hi.
请注意,在传输时我只发送7个字节的数据.但是在HAL_UART_Transmit_IT()大小的地方,我给了10.
HAL_UART_Transmit_IT(&huart2,(uint8_t*)"hello\r\n",10);
将此代码刷新到我的stm32后,我可以在终端中看到各种输出
你好\ r\NHI
如果我将txt hi改为其他类似行星的东西,那么输出就像
你好\ r\NPL
但是当我给出这样的完美尺寸时
HAL_UART_Transmit_IT(&huart2,(uint8_t*)"hello\r\n",7);
我得到了应该得到的实际输出
你好\ r \n
通过UART传输数据并查找某个缓冲区中是否存在子串是完全不同的任务.
有什么建议为什么会发生这种情况?
PS:基本上我的项目是GSM MODULE SIM800c和STM32f407VGt6我想从stm32发送各种AT命令并检查响应,以便我可以相应地工作.
以前我用AVR系列mcus尝试过这个项目,我可以发送短信,接收特定的短信,使用post和get方法向服务器发送数据,一切都运行得很好.
转移到ARM后,我没有得到STM32的表现.