什么可以消肿快的方法| 上环什么时候去最合适| 张三李四王五赵六后面是什么| 大牙什么时候换| 小孩拉肚子应该吃什么食物好| 大便不成形吃什么中成药| 昭字五行属什么| 周杰伦什么时候出道| 吃什么会死| 日皮是什么意思| 什么是顶香人| 什么人容易得心肌炎| 中性粒细胞百分比偏低什么意思| 口羊读什么| 健将是什么意思| 白月光是什么意思| 龙眼是什么季节的水果| 双子座是什么时候| 立碑有什么讲究和忌讳| 拔智齿后吃什么恢复快| 尿黄是因为什么| 血糖和血脂有什么区别| 不敢苟同是什么意思| 猫牙米是什么米| 细胞结构包括什么| 高潮是什么感觉| 今日立冬吃什么| 什么叫继发性高血压| 前庭功能障碍是什么病| 8月24号是什么星座| 腰椎间盘突出是什么原因引起的| 蛇的贵人是什么生肖| 4月20日是什么星座| 急性呼吸道感染是什么引起的| 胎动在肚脐周围是什么胎位| 蛀牙是什么原因引起的| 韵五行属什么| 做肠胃镜挂什么科| 犯花痴什么意思| 先心病是什么病| 三焦是什么器官| 免疫肝是什么病| 六小龄童的真名叫什么| 鸭肉煲汤放什么材料好| 92年属猴的是什么命| 浪琴表属于什么档次| 绰号是什么意思| 特种兵是干什么的| 眼压高什么症状| 啄木鸟包包什么档次| 大臂疼痛怎么什么原因| 赴汤蹈火的汤是什么意思| 西打酒是什么意思| 婴幼儿屁股红擦什么| 喜神是什么意思| 尿检蛋白质弱阳性是什么意思| 1953属什么生肖| 晚上10点属于什么时辰| 寒潮是什么| 人间四月芳菲尽的尽是什么意思| 紫癜有什么症状| 乙肝五项245阳性是什么意思| 心脏不舒服做什么检查| 同房后小腹疼痛是什么原因| 绿豆和什么相克| 咳嗽白痰吃什么好得快| 脚底板发热是什么原因| 出殡下雨是什么兆头| 10月25日什么星座| 单方精油和复方精油有什么区别| 松子吃多了有什么害处| 后羿射日什么意思| 梦到老公被蛇咬是什么意思| m是什么| 哆啦a梦的口袋叫什么| 什么是种草| 青柠檬和黄柠檬有什么区别| 阴阳怪气什么意思| 什么是天丝面料| 冒汗是什么原因| 小孩吃什么水果好| 效价是什么意思| 吧唧嘴什么意思| 他达拉非是什么药| 便秘用什么药| 乳酸杆菌阳性什么意思| 海棠果什么时候成熟| 梅花像什么| 封闭针是什么药| 5月26是什么星座| 打下巴用什么玻尿酸最好| 中暑吃什么水果| 枕秃是什么意思| 汉高祖叫什么名字| 猴子属于什么类动物| 美国为什么有两块土地| 流清鼻涕是什么原因| 戒指戴在食指什么意思| 什么是佛| 查脂肪肝做什么检查| 办身份证要穿什么衣服| 蚊子会传播什么疾病| 什么有所什么| 什么是对冲| 复位是什么意思| 什么食物含有维生素d| pg什么意思| bone什么意思| 流鼻涕感冒吃什么药| 宝宝是什么意思| 过期蜂蜜还有什么用途| 乳腺增生不能吃什么| 舌头溃疡用什么药| 魅可口红属于什么档次| 宣肺是什么意思| 福禄寿什么意思| 按摩椅什么品牌最好| 脚指甲变白是什么原因| 攀缘是什么意思| 39什么意思| 荷花是什么时候开的| 艾草泡脚有什么好处| 系统性红斑狼疮不能吃什么| 范思哲香水是什么档次| 己卯日五行属什么| 布加综合征是什么病| 今天开什么奖| 喝葡萄汁有什么好处| 没心没肺是什么意思| 停诊是什么意思| 休是什么意思| 恳谈会是什么意思| 力所能及什么意思| 什么是中产阶级| 毛细血管扩张是什么原因引起的| 灵芝有什么功效与作用| 过继是什么意思| 糯叽叽什么意思| 吃猪腰子有什么好处和坏处| 乳腺结节有什么危害| 苍龙七宿的秘密是什么| 什么是中元节| 脚上长水泡是什么原因| 幼儿园转园需要什么手续| 月抛是什么意思| 子宫有积液是什么原因引起的| 千古一帝指什么生肖| 菜板什么材质的好| 党参和丹参有什么区别| 成龙姓什么| 一个月一个并念什么| 尿特别多是什么原因| 扬字五行属什么| 比卡丘什么意思| 什么心什么肺| 眼睛眼屎多是什么原因| 送女生什么生日礼物比较好| 平安喜乐什么意思| 柔顺剂有什么用| 后背的骨头叫什么| 味蕾是什么意思| 人质是什么意思| 冰爽丝是什么面料| 吃无花果有什么好处| 狗属于什么类动物| 吃什么水果最好| 余数是什么| 什么是总胆固醇| 乐福鞋是什么鞋| 肌酸激酶是什么意思| 乙肝五项第二项阳性是什么意思| 窦性心律过缓是什么意思| 口苦是什么问题| 微不足道的意思是什么| 异化是什么意思| 河堤是什么意思| 家里什么东西止血最快| 鸡眼挂什么科| 十指不沾阳春水什么意思| 小孩肺炎吃什么药| 曼陀罗是什么| 脱发缺少什么维生素| 外阴苔藓用什么药膏| 代肝是什么意思| 肾虚什么症状| 睾丸疼什么原因| 薄荷有什么功效和作用| 中年人喝什么奶粉好| 干细胞能治什么病| 邪气入体是什么症状| 盆腔磁共振平扫能查出什么| 来苏水又叫什么名字| 红萝卜不能和什么一起吃| 玩得什么| 术后恢复吃什么好| taco是什么| 2026年属什么| 手臂粗是什么原因| 馊主意是什么意思| 心肌缺血吃什么好| 埋没是什么意思| 蜂蜜什么时候吃最好| ab和o型血生的孩子是什么血型| 馨是什么意思| 仿水晶是什么材质| 人类的祖先是什么生肖| 空气湿度是什么意思| 史字五行属什么| 主见是什么意思| 明朝北京叫什么| 人体最大器官是什么| 深明大义是什么意思| 大脚趾头疼是什么原因| 什么水果去湿气效果最好| 肛门里面疼是什么原因| 茭白不能和什么一起吃| 祈是什么意思| 不齿是什么意思| 人为什么会困| 为什么猫怕水| 指甲凹陷是什么原因引起的| pvs是什么意思| 血压高什么原因| 宝宝喜欢趴着睡觉是什么原因| 国籍填什么| 卵巢早衰检查什么项目| 疣是一种什么病| 8月10日什么星座| 什么是卤水| pose什么意思| 肝介入治疗是什么意思| 猫吐了吃什么药| 空调送风模式有什么用| 尿出血是什么原因| 喷的右边念什么| 眼皮一直跳是什么原因| 膀胱充盈欠佳是什么意思| hpv52阳性是什么病| 头晕为什么做眼震检查| 咳嗽一直不好是什么原因| 心率不齐有什么危害| 白细胞计数偏低是什么原因| 后背一推就出痧是什么原因| 凌字五行属什么| 枫树叶子像什么| 海带有什么营养| 喝中药不能吃什么| 白腊金是什么意思| 汪星人什么意思| 屁股长痘痘用什么药膏| 发烧可以吃什么水果| 千焦是什么单位| 长痘痘吃什么水果好| 龙凤呈祥是什么意思| 抽烟为什么会头晕| 阴骘什么意思| allan英文名什么意思| 吃小龙虾不能和什么一起吃| 脚气是什么样的图片| 牛和什么生肖相冲| 糖尿病人吃什么水果好| 猪蹄炖什么好吃| 脚板疼是什么原因| 晒背什么时候最佳时间| 百度
打印
[APM32E0]

享受婚礼策划过程 新娘们需时刻记住的4件事

[复制链接]
262|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wuyu40|  楼主 | 2025-7-29 19:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 wuyu40 于 2025-7-29 19:06 编辑

? 极海APM32E030R芯片是32 位 Arm?Cortex?-M0+内核,最高工作频率:72MHz,Flash 存储器:64KB,SRAM 存储器:8KB
开发方式如下:
1)连接 H2/H3 或 H4/H5 可使用板载 Geehy LINK 进行串口调试
2)断开 Geehy LINK 连接后,第三方调试工具可通过 JP1 连接仿真器进行 MCU 烧录调试
3)Type-C(数据通信)直接连接 PC 端进行 MCU 仿真调试
4)使用keil v 5.36编译环境
到官网找到如下文件:

使用的操作系统为win10(GEEHY-LINK(WinUSB)设备不支持在 Windows7 上免驱使用)假定已经安装keil (版本 V5.29 以上),安装Geehy.APM32E030_DFP.1.0.3也就是mcu支持包,阅读用户手册,按照指示连接硬件;该固件基于 CMSIS-DAP V1,会使用 USB 枚举成一个 HID 和 MSC 设备。
使用 USB 线成功连接电脑后,设备管理器上会出现:CMSIS DAP winUSB

在 keil 软件上配置选择使用 SW 模式或者 JTAG 模式。点击“Options for Target” ,在打开的界面中选择“Debug”,然后再选择“CMSIS-DAP Debugger”,如图 :

点击“Settings”按钮进入设置界面,选择 SWD 或者 JTAG 模式以及频率:

完成以上配置之后移植Oled工程,步骤如下:
  复制必要文件到已有工程中,然后在项目管理器中添加OLED相关文件:

添加头文件路径:

按照以下代码将oled的4根线(包含VCC、GND)接到开发板引脚上:
//-----------------OLED端口定义----------------
#define OLED_SCL_Clr()  GPIO_ClearBit(GPIOB, GPIO_PIN_8)  //SCL
#define OLED_SCL_Set() GPIO_SetBit(GPIOB,GPIO_PIN_8)
#define OLED_SDA_Clr() GPIO_ClearBit(GPIOB, GPIO_PIN_9)//DIN
#define OLED_SDA_Set() GPIO_SetBit(GPIOB,GPIO_PIN_9)
修改oled_init函数:
void OLED_Init(void)
{GPIO_Config_T gpioConfig;
    RCM_EnableAHBPeriphClock(RCM_AHB_PERIPH_GPIOB);
    /* LED2 GPIO configuration */
    gpioConfig.pin = GPIO_PIN_8;
    gpioConfig.mode = GPIO_MODE_OUT;
    gpioConfig.outtype = GPIO_OUT_TYPE_PP;
    gpioConfig.speed = GPIO_SPEED_50MHz;
    gpioConfig.pupd = GPIO_PUPD_NO;
    GPIO_Config(GPIOB, &gpioConfig);
    /* LED3 GPIO configuration */
    gpioConfig.pin = GPIO_PIN_9;
    GPIO_Config(GPIOB, &gpioConfig);
//OLED_RES_Clr();
delay_ms(200);
//OLED_RES_Set();
OLED_WR_Byte(0xAE,OLED_CMD);//--turn off oled panel
OLED_WR_Byte(0x00,OLED_CMD);//---set low column address
OLED_WR_Byte(0x10,OLED_CMD);//---set high column address
OLED_WR_Byte(0x40,OLED_CMD);//--set start line address  Set Mapping RAM Display Start Line (0x00~0x3F)
OLED_WR_Byte(0x81,OLED_CMD);//--set contrast control register
OLED_WR_Byte(0xCF,OLED_CMD);// Set SEG Output Current Brightness
OLED_WR_Byte(0xA1,OLED_CMD);//--Set SEG/Column Mapping    OLED_WR_Byte(0xC8,OLED_CMD);//Set COM/Row Scan Direction   OLED_WR_Byte(0xA6,OLED_CMD);//--set normal display
OLED_WR_Byte(0xA8,OLED_CMD);//--set multiplex ratio(1 to 64)
OLED_WR_Byte(0x3f,OLED_CMD);//--1/64 duty
OLED_WR_Byte(0xD3,OLED_CMD);//-set display offsetShift Mapping RAM Counter (0x00~0x3F)
OLED_WR_Byte(0x00,OLED_CMD);//-not offset
OLED_WR_Byte(0xd5,OLED_CMD);//--set display clock divide ratio/oscillator frequency
OLED_WR_Byte(0x80,OLED_CMD);//--set divide ratio, Set Clock as 100 Frames/Sec
OLED_WR_Byte(0xD9,OLED_CMD);//--set pre-charge period
OLED_WR_Byte(0xF1,OLED_CMD);//Set Pre-Charge as 15 Clocks & Discharge as 1 Clock
OLED_WR_Byte(0xDA,OLED_CMD);//--set com pins hardware configuration
OLED_WR_Byte(0x12,OLED_CMD);
OLED_WR_Byte(0xDB,OLED_CMD);//--set vcomh
OLED_WR_Byte(0x40,OLED_CMD);//Set VCOM Deselect Level
OLED_WR_Byte(0x20,OLED_CMD);//-Set Page Addressing Mode (0x00/0x01/0x02)
OLED_WR_Byte(0x02,OLED_CMD);//
OLED_WR_Byte(0x8D,OLED_CMD);//--set Charge Pump enable/disable
OLED_WR_Byte(0x14,OLED_CMD);//--set(0x10) disable
OLED_WR_Byte(0xA4,OLED_CMD);// Disable Entire Display On (0xa4/0xa5)
OLED_WR_Byte(0xA6,OLED_CMD);// Disable Inverse Display On (0xa6/a7)
OLED_Clear();
OLED_WR_Byte(0xAF,OLED_CMD);
}
其他需要进行头文件和数据类型定义修改,按照报错提示进行;接下来加入ADC转换代码;
使用了PA0引脚输入模拟信号,这个引脚接到光照传感器模拟信号端;
void ADCInit(void)
{GPIO_Config_T gpioConfig;
    ADC_Config_T  adcConfig;
    /* RCM Enable*/
    RCM_EnableAHBPeriphClock(RCM_AHB_PERIPH_GPIOA);
    RCM_EnableAPB2PeriphClock(RCM_APB2_PERIPH_ADC1);
    RCM_EnableAPB2PeriphClock(RCM_APB2_PERIPH_SYSCFG);
    /* GPIO Configuration */
    gpioConfig.pin = GPIO_PIN_0;
    gpioConfig.mode = GPIO_MODE_AN;
    gpioConfig.pupd = GPIO_PUPD_PU;
    GPIO_Config(GPIOA, &gpioConfig);
    /* ADC Configuration */
    ADC_Reset();
    ADC_ConfigStructInit(&adcConfig);
    /* Set resolution*/
    adcConfig.resolution = ADC_RESOLUTION_12B;
    /* Set dataAlign*/
    adcConfig.dataAlign  = ADC_DATA_ALIGN_RIGHT;
    /* Set scanDir*/
    adcConfig.scanDir    = ADC_SCAN_DIR_UPWARD;
    /* Set convMode continous*/
    adcConfig.convMode   = ADC_CONVERSION_CONTINUOUS;
    /* Set extTrigConv*/
    adcConfig.extTrigConv  = ADC_EXT_TRIG_CONV_TRG0;
    /* Set TrigEdge*/
    adcConfig.extTrigEdge    = ADC_EXT_TRIG_EDGE_NONE;
    ADC_Config(&adcConfig);
    ADC_ConfigChannel(ADC_CHANNEL_0, ADC_SAMPLE_TIME_239_5);
    /* Enable Interrupt*/
    ADC_EnableInterrupt(ADC_INT_CS);
    NVIC_EnableIRQRequest(ADC1_IRQn, 2);
    /* Calibration*/
    ADC_ReadCalibrationFactor();
    /* Enable ADC*/
    ADC_Enable();}
ADC转换使用了中断进行采集数据,并且在中断函数中调用了以下函数:
void ADC_Isr()
{
    uint32_t adcData = 0;
    uint32_t voltage = 0;
    if (ADC_ReadIntFlag(ADC_INT_FLAG_CS) == SET)
    {
        /* The interrupt flag bit must be cleared first. */
        ADC_ClearIntFlag(ADC_INT_FLAG_CS);
        /* Read ADC Conversion value */
        adcData = ADC_ReadConversionValue();
        /*  voltage(mV) =  adcData * (3300mV / 4095) */
        voltage = (adcData * 3300) / 4095;
  ADC_voltage=voltage;
        /* output to serial port */
      // 设置全局变量用来进行oled显示
    }
}
将光照信号经ADC转换之后在oled上显示,主程序如下:
char adc01[12];
ADCInit();
    /* Wait until ADC is ready */
    while (!ADC_ReadStatusFlag(ADC_FLAG_ADRDY));
    ADC_StartConversion();
OLED_Init();
OLED_ColorTurn(0);
OLED_DisplayTurn(0);
while(1)
{OLED_Refresh();
delay_ms(5000);
OLED_Clear();
sprintf(adc01, "%d", ADC_voltage);
OLED_ShowString(8,16,adc01,16,1);
OLED_ShowString(20,32,"2014/05/01",16,1);
OLED_ShowString(0,48,"ADC:",16,1);  
OLED_ShowString(8,16,str,16,1);
OLED_ShowString(63,48,adc01,16,1);
OLED_Refresh();}
接线图如下:




沙发
发光的梦| | 2025-7-30 07:07 | 只看该作者
这I2C通讯是使用了GPIO模拟的方式吗?
板凳
fanzq2005| | 2025-7-30 08:29 | 只看该作者
收到,谢谢分享,大家一起进步!
地板
wuyu40|  楼主 | 2025-7-30 15:59 | 只看该作者
发光的梦 发表于 2025-7-30 07:07
这I2C通讯是使用了GPIO模拟的方式吗?

是的
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

52

帖子

1

粉丝
为什么月经迟迟不来又没怀孕 耳麦是什么 黑色素缺失吃什么补充最快 宝宝发烧拉肚子是什么原因 番茄和蕃茄有什么区别
痛风吃什么药 真性情是什么意思 子宫增厚是什么原因 燕窝补什么 破涕为笑是什么意思
骨髓瘤是什么原因引起的 农历8月13日是什么星座 办护照需要什么条件 tf卡是什么卡 亚甲蓝注射起什么作用
什么是基数 独苗是什么意思 眼皮跳是什么预兆 血液粘稠会有什么症状 西楚霸王是什么生肖
通草长什么样图片hcv7jop6ns7r.cn 全身瘙痒是什么原因hcv7jop4ns7r.cn 人参归脾丸和归脾丸有什么区别hcv9jop7ns5r.cn tommy什么牌子hcv8jop6ns2r.cn 类风湿因子高说明什么hcv9jop6ns9r.cn
女人有腰窝意味着什么hcv9jop5ns7r.cn 二刷是什么意思hcv7jop9ns9r.cn 越五行属性是什么hcv9jop0ns2r.cn 8月5日什么星座hcv7jop4ns7r.cn 腹腔积液是什么原因hcv8jop3ns4r.cn
一指什么生肖travellingsim.com 人为什么会发烧hcv9jop7ns2r.cn 痰是棕色的是什么原因shenchushe.com 一 什么云xjhesheng.com 雾霾是什么意思hcv7jop4ns5r.cn
心脏病吃什么水果最好hcv9jop8ns3r.cn 四点半是什么时辰hcv7jop6ns4r.cn 磨豆浆是什么意思hcv8jop4ns2r.cn 酒糟是什么东西gangsutong.com 什么是客单价hcv7jop5ns1r.cn
百度