完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
您好,我的项目初始化UART2有问题(STM8S105)。下面你可以看到我的部分代码,我做错了什么?
我正在尝试将标志发送到LCD显示屏。 ... void UART2_Cmd(FunctionalState ENABLE); void UART2_InitGPS() { UART2_DeInit(); UART2_Init((u32)9600,UART2_WORDLENGTH_8D,UART2_STOPBITS_1,UART2_PARITY_NO,UART2_SYNCMODE_CLOCK_DISABLE,UART2_MODE_TXRX_ENABLE); } void UART2_SendData8(u8数据); u8 UART2_ReceiveData8(void); void main(void) { char tmp; LCD5110_init(); //初始化LCD的功能 LCD5110_set_XY(0,0); //在LCD中设置行和列的功能 UART2_SendData8(36); UART2_ReceiveData8(); tmp = UART2_ReceiveData8(); LCD5110_write_char(TMP); //将字符发送到LCD的功能 } 我必须提到编译代码后我没有错误,如果我使用这样的函数一切正常(但我需要UART从GPS中获取数据并将其发送到LCD): void main(void) { char tmp = 33; // 33 - > ''!''在我的矩阵中签名(用桌子或山楂命名) LCD5110_init(); //初始化LCD的功能 LCD5110_set_XY(0,0); //在LCD中设置行和列的功能 LCD5110_write_char(TMP); //将字符发送到LCD的功能 } BR, 康拉德 附:如果有人想看到整个代码让我知道 |
|
相关推荐
1个回答
|
|
当您使用UART * _ReceiveData()函数时,您应该等到使用UART * _GetFlagStatus()设置UART2_FLAG_RXNE标志。比这更好的方法是使用UART中断UART2_IT_RXNE_OR并在中断触发时将数据推送到屏幕,这样你的主代码就不会卡在浪费cpu时间的循环中。
以上来自于谷歌翻译 以下为原文 When you are using UART*_ReceiveData() functions you should probably wait until UART2_FLAG_RXNE flag is set by using UART*_GetFlagStatus(). A better method than doing that would be to use the UART interrupt UART2_IT_RXNE_OR and push the data to the screen whenever the interrupt triggers, that way you're main code isn't stuck in a loop wasting cpu time. |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2455 浏览 1 评论
3160 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1727 浏览 1 评论
3546 浏览 6 评论
5906 浏览 21 评论
884浏览 4评论
1263浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
528浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1246浏览 3评论
1299浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-30 07:13 , Processed in 0.816323 second(s), Total 46, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号