完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
int main(void)
{ u8 t; u8 len; u16 times=0; STM32_Clock_Init(9); //系统时钟设置 delay_init(72); //延时初始化 uart_init(72,9600); //串口初始化为9600 LED_Init(); //初始化与LED连接的硬件接口 while(1) { if(USART_RX_STA&0x80) { len=USART_RX_STA&0x3f;//得到此次接收到的数据长度 printf("n您发送的消息为:n"); for(t=0;t USART1->DR=USART_RX_BUF[t]; while((USART1->SR&0X40)==0);//等待发送结束 } printf("nn");//插入换行 USART_RX_STA=0; }else { times++; if(times%5000==0) { printf("nMiniSTM32开发板 串口实验n"); printf("发烧友@ALIENTEKnnn"); } if(times%200==0)printf("请输入数据,以回车键结束n"); if(times%30==0)LED0=!LED0;//闪烁LED,提示系统正在运行. delay_ms(10); } } } 主函数中的 if(USART_RX_STA&0x80) { len=USART_RX_STA&0x3f;//得到此次接收到的数据长度 如果进入if,那么 USART_RX_STA应该为0x80. 随后len=USART_RX_STA&0x3f =0x80&0x3f 不就为0吗? 我知道原子哥的程序肯定是对的,仿真结果肯定是正确的,我就像知道我是哪里像错了? |
|
相关推荐
6个回答
|
|
|
|
|
|
原子哥这个我知道 它肯定不会一直是0, 但只是我在想,进入if(USART_RX_STA&0x80)
,此时的USART_RX_STA不是等于0x80吗,len=USART_RX_STA&0x3f =0x80&0x3f 不就是等于0吗? 我就是不明白在什么位置,让这个USART_RX_STA变量数值变化,希望您多说一点,我纠结好久了。 |
|
|
|
在中断服务函数.
|
|
|
|
|
|
|
|
抱歉 有个地方忽略了 if(res==0x0d)USART_RX_STA|=0x40; 直接将或的符号带过了,直接以为赋值为0x40,所以USART_RX_STA还可以等于0x81 ..0x8F 让if(USART_RX_STA&&0x80)为真的条件,它不一定只是等于0x80 |
|
|
|
你位操作要好好学学,自己多做做练习题吧!
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1928 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1700 浏览 1 评论
1181 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
781 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1747 浏览 2 评论
1986浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
822浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
269浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
634浏览 3评论
638浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-1 07:55 , Processed in 0.673921 second(s), Total 54, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号