4
7
54
注册会员
使用道具 举报 送花
835
1万
2万
管理员
14
125
924
版主
#include "config.h" //默认已包含stdio.h、intrins.h等头文件 u16 Bandgap; //<<AICUBE_USER_INCLUDE_BEGIN>> // 在此添加用户头文件包含 //<<AICUBE_USER_INCLUDE_END>> //<<AICUBE_USER_GLOBAL_DEFINE_BEGIN>> // 在此添加用户全局变量定义、用户宏定义以及函数声明 //<<AICUBE_USER_GLOBAL_DEFINE_END>> //////////////////////////////////////// // 项目主函数 // 入口参数: 无 // 函数返回: 无 //////////////////////////////////////// void main(void) { //<<AICUBE_USER_MAIN_INITIAL_BEGIN>> // 在此添加用户主函数初始化代码 //<<AICUBE_USER_MAIN_INITIAL_END>> u16 vol; SYS_Init(); //<<AICUBE_USER_MAIN_CODE_BEGIN>> // 在此添加主函数中运行一次的用户代码 //<<AICUBE_USER_MAIN_CODE_END>> while (1) { USBLIB_OUT_Done(); //查询方式处理USB接收的数据 vol = ADC_Convert(0); // 调用自动生成的 ADC 转换函数 Bandgap = ADC_Convert(15); // 读取内部基准 ADC(15通道) vol = (u16)((u32)vol * 119 / Bandgap); // 相对电压值计算 printf_usb("Analog Voltage: %0.2fV\r\n",(float)vol/100); // 打印电压值 delay_ms(500); //<<AICUBE_USER_MAIN_LOOP_BEGIN>> // 在此添加主函数中用户主循环代码 //<<AICUBE_USER_MAIN_LOOP_END>> } } //////////////////////////////////////// // 系统初始化函数 // 入口参数: 无 // 函数返回: 无 //////////////////////////////////////// void SYS_Init(void) { EnableAccessXFR(); //使能访问扩展XFR AccessCodeFastest(); //设置最快速度访问程序代码 AccessIXramFastest(); //设置最快速度访问内部XDATA IAP_SetTimeBase(); //设置IAP等待参数,产生1us时基 //<<AICUBE_USER_PREINITIAL_CODE_BEGIN>> // 在此添加用户预初始化代码 //<<AICUBE_USER_PREINITIAL_CODE_END>> P0M0 = 0x00; P0M1 = 0x00; //初始化P0口为准双向口模式 P1M0 = 0x00; P1M1 = 0x00; //初始化P1口为准双向口模式 P2M0 = 0x00; P2M1 = 0x00; //初始化P2口为准双向口模式 P3M0 = 0x00; P3M1 = 0x00; //初始化P3口为准双向口模式 P4M0 = 0x00; P4M1 = 0x00; //初始化P4口为准双向口模式 P5M0 = 0x00; P5M1 = 0x00; //初始化P5口为准双向口模式 CLK_Init(); //时钟模块初始化 ADC_Init(); //ADC初始化 delay_ms(1); USBLIB_Init(); //USB库初始化 delay_ms(1); //<<AICUBE_USER_INITIAL_CODE_BEGIN>> // 在此添加用户初始化代码 //<<AICUBE_USER_INITIAL_CODE_END>> EnableGlobalInt(); //使能全局中断 } //////////////////////////////////////// // 微秒延时函数 // 入口参数: us (设置延时的微秒值) // 函数返回: 无 //////////////////////////////////////// void delay_us(uint16_t us) { do { NOP(34); //(MAIN_Fosc + 500000) / 1000000 - 6 } while (--us); } //////////////////////////////////////// // 毫秒延时函数 // 入口参数: ms (设置延时的毫秒值) // 函数返回: 无 //////////////////////////////////////// void delay_ms(uint16_t ms) { uint16_t i; do { i = MAIN_Fosc / 6000; while (--i); } while (--ms); } //<<AICUBE_USER_FUNCTION_IMPLEMENT_BEGIN>> // 在此添加用户函数实现代码 //<<AICUBE_USER_FUNCTION_IMPLEMENT_END>> 复制代码
本版积分规则 发表回复 回帖后跳转到最后一页
|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )
GMT+8, 2026-2-12 18:05 , Processed in 0.141553 second(s), 82 queries .
Powered by Discuz! X3.5
© 2001-2026 Discuz! Team.