stm32串口发送中文再回复其他文字的程序怎么编写

stm32串口发送中文再回复其他文字的程序怎么编写,第1张

请确保你电脑上的串口工作正常,测试方法,打开一个串口调试助手,短接串口线的TX和RX,然后串口调试助手发送一个字符,比如a,如果串口通信正常,你能在串口调试助手中收到a

请确保STM32上用于ISP的串口是串口1,IO是PA9,PA10,如果是STM32F2XX,也可以是串口3

请确保STM32在上电时两个BOOT引脚的电平正确(BOOT0=1,BOOT1=0貌似,看手册)

如以上条件满足,还是无法ISP,请调整串口波特率,比如9600,无校验

试一下:

while(1)

{

USART1->DR=0x12;

while(USART1->SR&0X40==0);

delay_ms(100);

USART1->DR=0x34;

while(USART1->SR&0X40==0);

}

如果这样可以的话,说明在 USART1->DR=0x12之前,USART1->SR&0X40==0有问题,可能一直是true。

注意初始化是否正确!没有进入中断应注意中断使能位是否已经配置还,如果是根据别的代码修改的话还要注意:

1、GPIO口时钟的使能和GPIO口模式的配置。

2、USART模块时钟的使能。

3、NVIC中断通道和优先级相关的配置!!!

能发送数据说明1、2应该是没问题的吧,如果第3点没有注意到的话是不会发生中断!!!

肯定了,你要发完后查询下发送完标志,

就是在

USART_SendData(USART1,str);//这后面加上下面判断

while(USART_GetFlagStatus(USART1, USART_FLAG_TC));//等待发送完才可以发下一个,不然会被冲掉的。

str++;

PC机经串口把文件过来,再由STM32用串口接收,接收到之后再写入STM32内部的Flash?

这样的话首先就是数据写入Flash问题,一般过程是:Flash解锁->Flash擦除->Flash写入->Flash上锁,这些都可以使用库函数来完成(在STM32F10x_flashc文件里面,针对STM32F10x系列的产品),关于Flash的读写 *** 作代码网上一大堆;在一个就是串口接收的问题,有三种方法:

1、在PC机上使用普通的串口工具(一般的串口工具都支持文件传送功能),将波特率调至最低,2400到9600那样吧,然后发送文件,STM32这边接收,接收到2个字节数据就写入Flash。将波特率调低的目的是使STM32有足够的时间将数据写入Flash。

2、使用串口通信协议传输文件(如XModem,YModem,ZModem等),一般使用ZModem吧,因为比较简单,但前提是是必须要完全了解这个协议,支持这些协议传输的工具:XP系统的超级终端、SecureCRT软件等;然后你还要在STM32这边针对ZModem协议编写串口接收的程序。

3、首先在PC机这边要会串口编程,用C、C++、Java语言都好,VC++、QT开发工具都好,反正就是你自己能编程控制串口和文件的读写 *** 作就行,然后可以怎么方便怎么打开读取文件,再通过串口传输到STM32中。

以上就是关于stm32串口发送中文再回复其他文字的程序怎么编写全部的内容,包括:stm32串口发送中文再回复其他文字的程序怎么编写、STM32串口发送的问题、STM32串口通讯程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9285521.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存