(个人理解/猜测,仅供参考)
UART只是一种 通用异步收发传输器 ,应该没有自然计算的功能?只负责数据的传输?
至于实现自然数的加减法并显示。
我认为是可能可以是这样。
上位机(PC) ----UART---> 单片机(接收数据)---> SOC中的某个程序(解析数据) ---> 门电路(计算加法)-->(调用显示驱动)->显示结果。
-->至于如何解析数据。我的想法是。
最开始发送的时候根据UART数据格式进行封装,到UART驱动之后给到上层App,就是原始的数据,一般会用ASCII来表示,
比如 50+124= 转换为 16进制就是 0x32,0x7C,0x2B,0x3D(0x是为了表示16进制)
- unsigned char data[4]={0x32,0x7C,0x2B,0x3D};
- //do something
- unsigned char display_date = (data[2] == 0x2B)?data[0]+data[1]:data[0]-data[1]);
- //use display api to display
- display(....)
- return;
-
- //ps:
- //because unsigned char,max value = 0xFF,if want to calc big data, and use four char to 1 data(int).
复制代码
|