完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
写了一个串口通信实验,接的蓝牙,发送指令后,正确的话应该能收到OK,但是现在就是没有返回。
void USART_Config(void) { GPIO_Init(GPIOC,GPIO_Pin_6,GPIO_Mode_In_PU_No_IT); GPIO_Init(GPIOC,GPIO_Pin_5,GPIO_Mode_Out_PP_Low_Fast); CLK_PeripheralClockConfig(CLK_Peripheral_USART1, ENABLE); USART_DeInit(USART1); USART_Init(USART1, (u32)9600, USART_WordLength_8b, USART_StopBits_1, USART_Parity_No, (USART_Mode_TypeDef)(USART_Mode_Tx |USART_Mode_Rx )); USART_Cmd(USART1,ENABLE); } PUTCHAR_PROTOTYPE { if(ch =='n') { while(!(USART1->SR USART_FLAG_TC )); USART_SendData8(USART1,'r'); while(!(USART1->SR USART_FLAG_TC )); } while(!(USART1->SR USART_FLAG_TXE )); USART_SendData8(USART1,ch); while(!(USART1->SR USART_FLAG_TXE )); return (ch); } //主函数 void main(void) { char zsh[]="AT+CBn"; // disableInterrupts(); // enableInterrupts(); CLK_Config(); USART_Config(); /* GPIO_Init(GPIOB, GPIO_Pin_0, (GPIO_Mode_TypeDef)GPIO_Mode_Out_PP_High_Slow);//BT_RESET/ */ while(1){ // scan_key(); /* GPIOB ->ODR =~GPIOB ->ODR; DelayMS(1000); GPIOB ->ODR =~GPIOB ->ODR; */ cnt = 0; printf("AT+CArn"); while(temp !=' n'){ while(!(USART_FLAG_RXNE USART1_SR) ); temp = USART_ReceiveData8(USART1); buf[cnt++]=temp; } DelayMS(100); } } |
|
相关推荐
1个回答
|
|
STM8L串口通信只能接收无法发送的原因可能有以下几点:
1. 波特率设置不正确:请确保您的发送设备和接收设备的波特率设置相同。波特率不一致可能导致通信失败。 2. 串口配置问题:请检查您的USART_Config函数中的串口配置是否正确。以下是一些可能需要检查的设置: a. 确保USART_Mode为USART_Mode_Rx | USART_Mode_Tx,以启用接收和发送功能。 b. 确保USART_WordLength为USART_WordLength_8b,表示8位数据长度。 c. 确保USART_StopBits为USART_StopBits_1,表示1个停止位。 d. 确保USART_Parity为USART_Parity_No,表示无奇偶校验位。 3. 蓝牙模块设置问题:请检查蓝牙模块的波特率和其他相关设置是否与STM8L设置一致。 4. 硬件连接问题:请检查您的STM8L开发板与蓝牙模块之间的硬件连接是否正确。确保TX(发送)和RX(接收)引脚正确连接。 5. 代码逻辑问题:请检查您的发送函数是否正确实现了发送数据的逻辑。确保在发送数据后,您等待了足够的时间以确保数据被发送。 6. 中断配置问题:如果您使用了中断来处理串口通信,请检查中断配置是否正确。确保USART_IT_RXNE(接收中断)和USART_IT_TXE(发送中断)已启用。 7. 调试问题:尝试使用简单的串口发送和接收示例代码来测试您的硬件和设置。如果示例代码可以正常工作,那么问题可能出在您的应用程序代码中。 请逐一排查上述可能的原因,以找到并解决STM8L串口通信只能接收无法发送的问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1685 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1588 浏览 1 评论
1013 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
706 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1631 浏览 2 评论
1893浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
679浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
538浏览 3评论
559浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
526浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-5 05:25 , Processed in 0.812254 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号