完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
|
相关推荐
1个回答
|
|
今天搞到一块串口屏,真的是打开了一个新世界的大门。不禁感慨,这么好的东西,怎么现在才知道呢,悔了悔了。
一开始上手的时候一脸闷逼,这玩意怎么用。但是这块屏的资料很丰富,手把手教学,稍微掌握一点基础以后,就开始了开头的感慨。 真香。 串口控制,简单方便。 只需4线,相比lcd简直是吊打。 可以自己开发ui界面,而且软件是全中文的,贼友好。 可以将按键集成到屏幕中。 。。。。。。 可能还有其他很多作用,目前还没发现。 后续如果有新的感受,再更新。 之前只是初步的应用烧烧例程之类的,真正的应用肯定是要和设备进行通讯的。 STM32与串口屏通讯分为两个部分,一个是发送部分,一个是接收部分。 发送部分较为简单,只需要通过串口向串口屏发送符合串口屏语法要求的指令就可以了。 u8 end[] = {0xff, 0xff, 0xff}; void U2LCD_Send_End(void) { USART2_SendString(end); } void ulcd_send(void){ // USART2_SendString((u8*)"page0.t1.txt="key2""); U2LCD_Send_End(); // } 接收就比较麻烦了,要判断串口数据进行存储和解析。本来我想通过定时器的定时来判断数据包接收完成,后来程序没有调出来。最后采用正点原子的接收方法。 串口接收部分不贴出来了,仅展示串口解析部分。 void USART2_Rece_Cope(void) { u8 len; if(USART_RX_STA&0x8000) { //USART2_SendString(USART_RX_BUF); len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度 if(USART_RX_BUF[0] == 'k') if( USART_RX_BUF[1] == 'e') if( USART_RX_BUF[2] == 'y') { if( USART_RX_BUF[3] == '2') { USART2_SendString((u8*)"page0.t1.txt="key2""); U2LCD_Send_End(); } else if( USART_RX_BUF[3] == '1') { USART2_SendString((u8*)"page0.t1.txt="key1""); U2LCD_Send_End(); } } USART_RX_STA=0; } } 其实通过字符串函数能够更好地处理,但是因为较为简单,就没采用(其实是懒)。 |
|
|
|
只有小组成员才能发言,加入小组>>
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
440 浏览 1 评论
286 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
254 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
618 浏览 2 评论
648 浏览 2 评论
1382浏览 9评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
80浏览 3评论
43浏览 3评论
STM32CUBEMX4.22.1在main函数里面添加一行语句就死机的原因?
55浏览 3评论
49浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-5-2 16:30 , Processed in 0.888237 second(s), Total 95, Slave 80 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号