5
4
35
新手上路
//<<AICUBE_USER_HEADER_REMARK_BEGIN>> //////////////////////////////////////// // 在此添加用户文件头说明信息 // 文件名称: main.c // 文件描述: // 文件版本: V1.0 // 修改记录: // 1. (2026-01-26) 创建文件 //////////////////////////////////////// //<<AICUBE_USER_HEADER_REMARK_END>> #include "config.h" //默认已包含stdio.h、intrins.h等头文件 //<<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>> SYS_Init(); //<<AICUBE_USER_MAIN_CODE_BEGIN>> // 在此添加主函数中运行一次的用户代码 //<<AICUBE_USER_MAIN_CODE_END>> while (1) { //<<AICUBE_USER_MAIN_LOOP_BEGIN>> // 在此添加主函数中用户主循环代码 //<<AICUBE_USER_MAIN_LOOP_END>> } } //////////////////////////////////////// // 系统初始化函数 // 入口参数: 无 // 函数返回: 无 //////////////////////////////////////// void SYS_Init(void) { EnableAccessXFR(); //使能访问扩展XFR IAP_SetTimeBase(); //设置IAP等待参数,产生1us时基 //<<AICUBE_USER_PREINITIAL_CODE_BEGIN>> // 在此添加用户预初始化代码 //<<AICUBE_USER_PREINITIAL_CODE_END>> PORT1_Init(); //P1口初始化 UART2_Init(); //串口2初始化 //<<AICUBE_USER_INITIAL_CODE_BEGIN>> // 在此添加用户初始化代码 //<<AICUBE_USER_INITIAL_CODE_END>> } //////////////////////////////////////// // 微秒延时函数 // 入口参数: us (设置延时的微秒值) // 函数返回: 无 //////////////////////////////////////// void delay_us(uint16_t us) { do { NOP(14); //(MAIN_Fosc + 500000) / 1000000 - 10 } while (--us); } //////////////////////////////////////// // 毫秒延时函数 // 入口参数: ms (设置延时的毫秒值) // 函数返回: 无 //////////////////////////////////////// void delay_ms(uint16_t ms) { uint16_t i; do { i = MAIN_Fosc / 10000; while (--i); } while (--ms); } //////////////////////////////////////// // P1口初始化函数 // 入口参数: 无 // 函数返回: 无 //////////////////////////////////////// void PORT1_Init(void) { SetP1nInitLevelHigh(PIN_ALL); //设置P1初始化电平 SetP1nQuasiMode(PIN_ALL); //设置P1为准双向口模式 DisableP1nPullUp(PIN_ALL); //关闭P1内部上拉电阻 DisableP1nSchmitt(PIN_ALL); //使能P1施密特触发 SetP1nSlewRateNormal(PIN_ALL); //设置P1一般翻转速度 SetP1nDrivingNormal(PIN_ALL); //设置P1一般驱动能力 SetP1nDigitalInput(PIN_ALL); //使能P1数字信号输入功能 //<<AICUBE_USER_PORT1_INITIAL_BEGIN>> // 在此添加用户初始化代码 //<<AICUBE_USER_PORT1_INITIAL_END>> } //////////////////////////////////////// // 串口2初始化函数 // 入口参数: 无 // 函数返回: 无 //////////////////////////////////////// void UART2_Init(void) { #ifdef BAUDRATE #undef BAUDRATE #endif #define BAUDRATE (9600) #define T2_RELOAD (65536 - (SYSCLK / BAUDRATE + 2) / 4) UART2_SwitchP1011(); //设置串口数据端口: RxD2 (P1.0), TxD2 (P1.1) // UART2_Timer2BRT(); //串口2固定选择定时器2作为波特率发生器 TIMER2_TimerMode(); //设置定时器2为定时模式 TIMER2_1TMode(); //设置定时器2为1T模式 TIMER2_SetPrescale(0); //设置定时器2的8位预分频 TIMER2_SetReload16(T2_RELOAD); //设置定时器2的16位重载值 TIMER2_Run(); //定时器2开始运行 UART2_EnableRx(); //使能串口2接收数据 UART2_Mode0(); //设置串口2为模式0 (8位数据可变波特率) //<<AICUBE_USER_UART2_INITIAL_BEGIN>> // 在此添加用户初始化代码 //<<AICUBE_USER_UART2_INITIAL_END>> } //<<AICUBE_USER_FUNCTION_IMPLEMENT_BEGIN>> // 在此添加用户函数实现代码 //<<AICUBE_USER_FUNCTION_IMPLEMENT_END>> 复制代码
使用道具 举报 送花
97
7244
1万
超级版主
本版积分规则 发表回复 回帖后跳转到最后一页
|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )
GMT+8, 2026-3-22 03:28 , Processed in 0.110133 second(s), 50 queries .
Powered by Discuz! X3.5
© 2001-2026 Discuz! Team.