创界uVision下的ADuC845的工程文件

 

01开发环境


ADuC845 是一款来自ANALOG DEVICES 公司的,带有高分辨率24-bit Δ − Σ \Delta - \Sigma ΔΣ ADC。它的基本特性:

  • 62-k Flash, 4-k EEPROM, 2.304k RAM
  • DAC:12bit, DAC-16bit
  • ADC:24bit

▲ ADuC845内部功能图

▲ ADuC845内部功能图

1.开发几种目录

(1) 根目录

C51\ADuC845

(2) UserCode

D:\zhuoqing\window\C51\ADuC845\UserCode

2.设置新的项目

选择Project中的New uVision Project 。选择: Legacy Device Data(no RTE) 选择 Analog Devices中的ADuC845 。

▲ 设置TargetADUC845

▲ 设置TargetADUC845

▲ IDE for ADuC845

▲ IDE for ADuC845

▲ Option for ADc845

▲ Option for ADc845

▲ Option for ADc845-Target

▲ Option for ADc845-Target

▲ Option for ADc845-Output

▲ Option for ADc845-Output

3.添加文件

使用 c51pf ad 命令来添加 UserCode中的主要开发文件。

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# C51CF.PY                     -- by Dr. ZhuoQing 2020-04-20
#
# Note: Copy UserCode C51 file into C51 Projects
#============================================================

from head import *
import shutil

#------------------------------------------------------------
C51UserCode = r'd:\zhuoqing\window\c51'

#------------------------------------------------------------
windowtitle = tspgetwindowtitle()
#printf(windowtitle)

projectpath8g = r'D:\zhuoqing\window\C51\STC\UserCode\STC8G'
projectpath8h = r'D:\zhuoqing\window\C51\STC\UserCode\STC8H'
projectpath15 = r'D:\zhuoqing\window\C51\STC\UserCode\STC15'
projectpathad = r'D:\zhuoqing\window\C51\ADuC845\UserCode'

#------------------------------------------------------------
for t in windowtitle:
    if t.find('μVision') >= 0:
        projectpath = os.path.dirname(t.split('-')[0])
        break

printf(projectpath)

if len(projectpath) == 0:
    printf("uVision IDE is not opened !\a")
    exit()

#------------------------------------------------------------
copypath = projectpath8g

if len(sys.argv) > 1:
    if sys.argv[1] == '15':
        copypath = projectpath15
    elif sys.argv[1] == '8g':
        copypath = projectpath8g
    elif sys.argv[1] == '8h':
        copypath = projectpath8h
    elif sys.argv[1] == 'ad':
        copypath = projectpathad

#------------------------------------------------------------
files = os.listdir(copypath)
count = 0
for f in files:
    sourcefile = os.path.join(copypath, f)
    if not os.path.isfile(sourcefile): continue

    targetfile = os.path.join(projectpath, f)
    if os.path.isfile(targetfile):
        printf("File %s is existed."%targetfile)
        continue

    shutil.copyfile(sourcefile, targetfile)

    printf('%s-->%s'%(f, targetfile))
    count = count + 1

printf('Copy %s files.\a'%count);

#------------------------------------------------------------
#        END OF FILE : C51CF.PY
#============================================================

4.下载调试

使用ADIDWNLD软件下载相应的HEX。

▲ 下载软件

▲ 下载软件

 

02交互方式


1.加入UDP

使用insudp加入相关的python通讯命令:

insudp up 2255

可以在python文件中加入下面相关的代码。

#------------------------------------------------------------
UDP_HOST  = '127.0.0.1'
UDP_PORT  = 2255
UDP_BUFSIZE = 0x1000
up = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
up.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, UDP_BUFSIZE)
up.settimeout(0.2)

def upsend(data):
    ADDR = (UDP_HOST, UDP_PORT)
    if type(data) != str:
        data = str(data)
    data = bytes(data, 'gbk')
    up.sendto(data, ADDR)

def uprecv():
    try:
        data, ADDR = up.recvfrom(UDP_BUFSIZE)
    except socket.timeout:
        printf('Meter time out.')
        data = ''
    if len(data) > 0:
        return data.decode('utf-8')
    else: return ''

def upval():
    upsend('MEMOS')
    splitstr = uprecv().split(' ')
    data = []
    for val in splitstr:
        if len(val) > 1:
            data.append(eval(val))
    return data

#------------------------------------------------------------

2.获得信息

使用下面命令可以获得 ADI ADuC8XX Download 消息窗口中的内容。

upsend('MEMOS')
printf(uprecv())

 

※ 结论


  • 通过uVision开发环境完成ADI ADuC845单片机的软件开发;
  • 通过加载UserCode来获得之前一款;klfahbde相关的代码;
  • 使用Insudp命令获得Python与Downloader之间的通讯。

■ 相关文献链接:

©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页