代码拉取完成,页面将自动刷新
同步操作将从 fjyh/智能手表 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "App.h"
#include "Config.h"
#include "Exti.h"
#include "GPIO.h"
#include "KEY.h"
#include "NVIC.h"
#include "PCF8563.h"
#include "Switch.h"
#include "UART.h"
#include "oled.h"
#include "MOTOR.h"
#include "Buzzer.h"
static void GPIO_config(void) {
// UART1
GPIO_InitTypeDef GPIO_InitStructure; // 结构定义
GPIO_InitStructure.Pin = GPIO_Pin_0 | GPIO_Pin_1; // 指定要初始化的IO,
GPIO_InitStructure.Mode =
GPIO_PullUp; // 指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
GPIO_Inilize(GPIO_P3, &GPIO_InitStructure); // 初始化
// INT3
GPIO_InitStructure.Pin = GPIO_Pin_7; // 指定要初始化的IO,
GPIO_InitStructure.Mode =
GPIO_PullUp; // 指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
GPIO_Inilize(GPIO_P3, &GPIO_InitStructure); // 初始化
// SPI ----------------------------------------------------------------------
// OLED
GPIO_InitStructure.Pin =
GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_3 | GPIO_Pin_6; // 指定要初始化的IO,
GPIO_InitStructure.Mode =
GPIO_PullUp; // 指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
GPIO_Inilize(GPIO_P1, &GPIO_InitStructure); // 初始化
GPIO_InitStructure.Pin = GPIO_Pin_7; // 指定要初始化的IO,
GPIO_InitStructure.Mode =
GPIO_PullUp; // 指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
GPIO_Inilize(GPIO_P4, &GPIO_InitStructure); // 初始化
GPIO_InitStructure.Pin = GPIO_Pin_0; // 指定要初始化的IO,
GPIO_InitStructure.Mode =
GPIO_PullUp; // 指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
GPIO_Inilize(GPIO_P5, &GPIO_InitStructure); // 初始化
}
void UART_config(void) {
// >>> 记得添加 NVIC.c, UART.c, UART_Isr.c <<<
COMx_InitDefine COMx_InitStructure; // 结构定义
COMx_InitStructure.UART_Mode =
UART_8bit_BRTx; // 模式,
// UART_ShiftRight,UART_8bit_BRTx,UART_9bit,UART_9bit_BRTx
COMx_InitStructure.UART_BRT_Use =
BRT_Timer1; // 选择波特率发生器, BRT_Timer1, BRT_Timer2 (注意:
// 串口2固定使用BRT_Timer2)
COMx_InitStructure.UART_BaudRate = 115200ul; // 波特率, 一般 110 ~ 115200
COMx_InitStructure.UART_RxEnable = ENABLE; // 接收允许, ENABLE或DISABLE
COMx_InitStructure.BaudRateDouble = DISABLE; // 波特率加倍, ENABLE或DISABLE
UART_Configuration(
UART1, &COMx_InitStructure); // 初始化串口1 UART1,UART2,UART3,UART4
NVIC_UART1_Init(ENABLE,
Priority_1); // 中断使能, ENABLE/DISABLE; 优先级(低到高)
// Priority_0,Priority_1,Priority_2,Priority_3
UART1_SW(
UART1_SW_P30_P31); // 引脚选择,
// UART1_SW_P30_P31,UART1_SW_P36_P37,UART1_SW_P16_P17,UART1_SW_P43_P44
}
/******************** INT配置 ********************/
void Exti_config(void) {
EXTI_InitTypeDef Exti_InitStructure; // 结构定义
Exti_InitStructure.EXTI_Mode =
EXT_MODE_RiseFall; // 中断模式, EXT_MODE_RiseFall,EXT_MODE_Fall
Ext_Inilize(EXT_INT3, &Exti_InitStructure); // 初始化
NVIC_INT3_Init(ENABLE,
Priority_0); // 中断使能, ENABLE/DISABLE; 优先级(低到高)
// Priority_0,Priority_1,Priority_2,Priority_3
}
void sys_init() {
Clock_t c;
EAXSFR(); // 扩展寄存器使能
GPIO_config();
UART_config();
PCF8563_init();
Exti_config();
KEY_Init();
MOTOR_Init();
Buzzer_init();
OLED_Init();
OLED_ColorTurn(0); // 0正常显示,1 反色显示
OLED_DisplayTurn(0); // 0正常显示 1 屏幕翻转显示
OLED_Clear();
EA = 1; // 中断总开关
// 准备数据
c.year = 2024;
c.month = 5;
c.day = 6;
c.hour = 23;
c.minute = 59;
c.second = 45;
c.week = 1;
// 写入日期时间
PCF8563_set_clock(c);
}
void start_main() _task_ 0 {
// 初始化外设
sys_init();
// 创建其他任务
os_create_task(TASK_MENUS);
os_create_task(TASK_KEYS);
// 销毁回收自己
os_delete_task(0);
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。