本帖最后由 1045964948 于 2021-9-17 16:53 编辑
本来程序没问题,调试了也没问题,但是我把板子放书包里吃了个饭回来板子就只能发送数据接收不到电脑上面发送的数据了,我用例程一样的,现在很懵逼,搜了一天不知道什么原因,希望帮忙看看,下面是rct6官方例程,烧录进去也是只能发送不能接收数据,接线肯定没问题,ttl模块也肯定没问题
- #include "stdint.h"
- #include "led.h"
- #include "delay.h"
- #include "key.h"
- #include "sys.h"
- #include "usart.h"
- #include "GUI.h"
- #include "Lcd_Driver.h"
- uint8_t t;
- uint8_t len;
- uint16_t times=0;
- //STM32开发板
- //串口实验
- int main(void)
- {
- delay_init(); //延时函数初始化
- NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
- uart_init(115200); //串口初始化为9600
- LED_Init(); //LED端口初始化
- KEY_Init(); //初始化与按键连接的硬件接口
-
- Lcd_Init(); //1.44寸液晶屏--初始化配置
- Lcd_Clear(GRAY0);//清屏
- Gui_DrawFont_GBK16(0,16,RED,GRAY0,"Test serial port ");
- Gui_DrawFont_GBK16(0,48,BLUE,GRAY0," 嵌入式开发网 ");
- Gui_DrawFont_GBK16(0,64,BLUE,GRAY0,"xxxxxxxxxxxx ");
-
- printf("\r\n welcome to 北京\r\n");
- while(1)
- {
- if(USART_RX_STA&0x8000)
- {
- len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
- printf("\r\n您发送的消息为:\r\n\r\n");
- for(t=0;t<len;t++)
- {
- USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据
- while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
- }
- printf("\r\n\r\n");//插入换行
- USART_RX_STA=0;
- }else
- {
- times++;
- if(times%5000==0)
- {
- printf("\r\nSTM32开发板 串口实验\r\n\r\n");
-
- }
- if(times%200==0)printf("请输入数据,以回车键结束\r\n");
- if(times%30==0)LED=!LED;//闪烁LED,提示系统正在运行.
- delay_ms(10);
- }
- }
- }
复制代码
就在我刚刚一头雾水随便发送接收的时候,突然接收到一个我发送的数据,然后后面又接收不到了,随后我找到了我同学的ttl模块然后有试了一下,好像是我的st-link模块在做怪,我拔了下载器模块就可以正常发送接收,然后现在问题得以解决,非常感谢大家在百忙之中抽出时间帮助我解决问题,在此谢谢大家了
串口实验.7z
(189.49 KB, 下载次数: 7)
|