3328|4

280

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

R7F0C80212电路板利用code generator生成AD+UART应用。 [复制链接]

看了论坛里关于串口乱码的讨论,归根到底是关于数据传输位LSB 与MSB的区别,自己也使用程序验证了一下,感觉这主要跟串口软件设置有关系。废话不说了,主要说一说如何使用cod generator(以下简称cg)生成AD和uart代码应用。该应用主要作用是ADC对AIN0的电压进行测量,并将测量值通过串口发送到上位机显示。功能很简单,但是对于这个
一   使用cg生成相关的代码,主要需要
       1)配置的是AD的位数,采样时间,操作模式。
      
       2)配置UART的参数,主要是波特率,停止位。校验位等等,最重要是确认的输出位传输次序,即选择LSB 还是MSB.

二  生成代码,配置用户应用。
    主要流程如下:
         1)程序一开始初始化ADC及SAU等模块, 这些已经由cg自动产生并应用了,我们不用关心。
         2)添加用户代码。本例应用主要是开始启动ADC,获得数据后产生中断,在ADC中断里设置标志位,主程序里判断标志位,停止ADC,获得并处理电压数据,之后通过UART发送,其中UART的应用比较特殊,里面有回调函数,在配置里可以看出来,一旦发送完毕会自动调用回调函数,因此我们需要在该回调函数里加入启动ADC的函数,来再次启动ADC。

         3)对于获得电压值只是简单的取每一位,然后转化成字符发送出去。
         4)如下,是串口软件读取的值,显示4为,电阻逆时针到头是电压最大值,显示1023,顺时针到最小值,显示0001,其他中间值也会显示,具体如下:
      
三 总结。
     1)对于这个10引脚的MCU,内部空间资源有限,我遇到的问题是float运算,一旦出现小数,比如5.0.编译就会出现错误。
     2)还是上面问题,常量如果定义过多,也会出现编译错误。百度了一下,需要修改ldr文件,具体怎么修改,还需要研究。
     总之就是内部空间太小,导致一些深入的运算无法进行。
    附件是该程序文件,有需要可以参考一下!!

   


uart -2.zip

121.24 KB, 下载次数: 22

最新回复

学习了,不错。  详情 回复 发表于 2016-6-5 20:12
点赞 关注

回复
举报

1297

帖子

2

TA的资源

纯净的硅(中级)

沙发
 
选Ain0感觉不合适,因为和UART的RX是复用的。现在因为不需要收才没问题,而且有IO口被不当初始化的风险,因为AIN是模拟口,RX是数字口。
 
 

回复

260

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
在配置里可以看出来,一旦发送完毕会自动调用回调函数,因此我们需要在该回调函数里加入启动ADC的函数
 
个人签名中空板|防静电中空板www.cheng-sen.com
 
 

回复

280

帖子

0

TA的资源

一粒金砂(高级)

4
 
这里是因为电位器安装在ain0了,所以只选择了tx,没有选择rx功能,另外串口通讯用的ttl线。回调函数很有用,哈哈。
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

5
 
学习了,不错。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表