网站建设过程中要注意的事项重庆比较好的广告公司

张小明 2026/1/2 10:03:29
网站建设过程中要注意的事项,重庆比较好的广告公司,上海快速建设网站公司,天津市建设厅网站Zephyr 开发笔记#xff1a;RA6E2 SPI 屏 (SSD1306) 双路 ADC 1. 硬件接线表 (根据代码分析) 根据你的 app.overlay 配置#xff0c;硬件连接如下。请务必检查物理连线是否一致#xff1a;模块功能 (Pin Name)RA6E2 引脚备注SSD1306D0 (SCK/CLK)P111SPI0 RSPCK (硬件 SPI 时…Zephyr 开发笔记RA6E2 SPI 屏 (SSD1306) 双路 ADC1. 硬件接线表 (根据代码分析)根据你的app.overlay配置硬件连接如下。请务必检查物理连线是否一致模块功能 (Pin Name)RA6E2 引脚备注SSD1306D0 (SCK/CLK)P111SPI0 RSPCK (硬件 SPI 时钟)D1 (MOSI/DIN)P109SPI0 MOSI (硬件 SPI 数据)RES (Reset)P208GPIO 输出DC (Data/Cmd)P110GPIO 输出CS (Chip Sel)P301GPIO 输出VCC3.3VGNDGNDADCAN002P002模拟输入通道 2AN004P004模拟输入通道 4注意你的代码中 D/C 使用的是P110(ioport1 10 ...)而 MOSI 使用的是P109(RA_PSEL(..., 1, 9))。这与常见的 P109/P110 功能互换不同请确保接线严格对应代码。2. 软件配置2.1 项目配置 (prj.conf)这里启用了 SPI 驱动并配置了 CFB 字体。# --- 系统基础 --- CONFIG_STDOUT_CONSOLEy CONFIG_LOGy CONFIG_HEAP_MEM_POOL_SIZE4096 # --- 外设驱动 --- CONFIG_GPIOy CONFIG_SPIy CONFIG_ADCy # --- 显示系统 (SSD1306 SPI) --- CONFIG_DISPLAYy CONFIG_SSD1306y CONFIG_SSD1306_DEFAULT_CONTRAST128 # --- 图形库 (CFB) --- CONFIG_CHARACTER_FRAMEBUFFERy # 保持默认字体设置避免字体宏冲突 CONFIG_CHARACTER_FRAMEBUFFER_USE_DEFAULT_FONTSy # --- 日志级别 --- CONFIG_ADC_LOG_LEVEL_INFy2.2 设备树覆盖 (app.overlay)这是最核心的部分。我们做了两件事ADC 配置添加 P002 和 P004 到 ADC0。SPI 自定义配置这是难点。系统默认的spi0可能包含 P109/P110/P111 全套引脚。我们需要定义一个新的引脚组spi0_new_custom只包含SCK 和 MOSI把其他引脚释放出来给 GPIO 使用。/* * SSD1306 SPI Overlay for Renesas FPB-RA6E2 */ #include zephyr/dt-bindings/gpio/gpio.h #include zephyr/dt-bindings/pinctrl/renesas/pinctrl-ra.h / { chosen { zephyr,display ssd1306_spi; /* 指定使用 SPI 屏作为主显示 */ }; }; /* 强制开启相关 GPIO 端口控制 */ ioport1 { status okay; }; ioport2 { status okay; }; ioport3 { status okay; }; pinctrl { /* * 自定义 SPI0 引脚组 * 仅配置 MOSI (P109) 和 SCK (P111) 给 SPI 控制器 * P110 未在此处出现因此可以被用作普通 GPIO (D/C) */ spi0_new_custom: spi0_new_custom { group1 { psels RA_PSEL(RA_PSEL_SPI, 1, 9), /* MOSI: P109 */ RA_PSEL(RA_PSEL_SPI, 1, 11); /* SCK: P111 */ drive-strength high; /* 增强驱动能力提升 SPI 稳定性 */ }; }; /* ADC 引脚配置 */ adc0_default: adc0_default { group1 { psels RA_PSEL(RA_PSEL_ADC, 0, 2), /* AN002: P002 */ RA_PSEL(RA_PSEL_ADC, 0, 4); /* AN004: P004 */ renesas,analog-enable; }; }; }; spi0 { status okay; /* 应用我们自定义的引脚配置 */ pinctrl-0 spi0_new_custom; pinctrl-names default; /* CS 片选引脚 (P301) - 由 SPI 驱动软件控制 */ cs-gpios ioport3 1 GPIO_ACTIVE_LOW; ssd1306_spi: ssd13060 { compatible solomon,ssd1306fb; reg 0; /* * SPI 频率: 100kHz 用于调试。 * 如果屏幕刷新太慢后续可改为 4000000 (4MHz) 或更高 */ spi-max-frequency 100000; width 128; height 64; segment-offset 0; page-offset 0; display-offset 0; multiplex-ratio 63; segment-remap; com-invdir; prechargep 0x22; /* D/C 引脚: P110 */ >3. 代码实现 (main.c)逻辑与 I2C 版本基本通用因为 Zephyr 屏蔽了底层 SPI/I2C 的差异。只需注意display_dev是通过zephyr,display自动获取的。#includezephyr/kernel.h#includezephyr/device.h#includezephyr/drivers/display.h#includezephyr/display/cfb.h#includezephyr/drivers/adc.h#includestdio.h#includezephyr/logging/log.hLOG_MODULE_REGISTER(main,LOG_LEVEL_INF);/* ADC 定义 */conststructdevice*adc_devDEVICE_DT_GET(DT_NODELABEL(adc0));#defineADC_CH2_ID2#defineADC_CH4_ID4staticint16_tm_sample_buffer;/* ADC 初始化辅助函数 */staticintsetup_adc_channel(intid){structadc_channel_cfgcfg{.gainADC_GAIN_1,.referenceADC_REF_INTERNAL,.acquisition_timeADC_ACQ_TIME_DEFAULT,.channel_idid,};returnadc_channel_setup(adc_dev,cfg);}/* ADC 读取辅助函数 */staticintread_adc_val(intid,int16_t*val){structadc_sequenceseq{.channelsBIT(id),.bufferm_sample_buffer,.buffer_sizesizeof(m_sample_buffer),.resolution12,};intretadc_read(adc_dev,seq);*valm_sample_buffer;returnret;}intmain(void){/* 1. 获取显示设备 (自动根据 chosen 节点找到 ssd1306_spi) */conststructdevice*displayDEVICE_DT_GET(DT_CHOSEN(zephyr_display));if(!device_is_ready(display)){LOG_ERR(Display not ready! Check SPI wiring.);return0;}if(!device_is_ready(adc_dev)){LOG_ERR(ADC not ready!);return0;}/* 2. 初始化显示 */display_blanking_off(display);cfb_framebuffer_init(display);cfb_framebuffer_set_font(display,0);// 使用默认字体/* 3. 初始化 ADC */setup_adc_channel(ADC_CH2_ID);setup_adc_channel(ADC_CH4_ID);LOG_INF(System Started: SPI SSD1306 ADC);charbuf[32];int16_tval2,val4;while(1){/* 读取 ADC */read_adc_val(ADC_CH2_ID,val2);read_adc_val(ADC_CH4_ID,val4);/* 串口打印 */LOG_INF(ADC: CH2%d, CH4%d,val2,val4);/* 屏幕显示 */cfb_framebuffer_clear(display,false);cfb_print(display,RA6E2 Monitor,0,0);snprintf(buf,sizeof(buf),AN002: %d,val2);cfb_print(display,buf,0,16);snprintf(buf,sizeof(buf),AN004: %d,val4);cfb_print(display,buf,0,32);/* 画个动态条 (简单的可视化) */intbar_w(val2*100)/4095;structcfb_positionstart{0,50};structcfb_positionend{bar_w,54};cfb_draw_rect(display,start,end);cfb_framebuffer_finalize(display);k_sleep(K_MSEC(200));}return0;}4. 调试常见问题屏幕全黑没反应检查RES (P208)和D/C (P110)接线。SPI 屏如果不复位或 D/C 状态错误完全不会显示。检查D1 (MOSI)和D0 (SCK)是否接反。尝试调低spi-max-frequency例如 100000 (100kHz)确保不是信号质量问题。ADC 读数不准RA6E2 的模拟地 (AVSS0) 和数字地 (VSS) 必须共地。如果读数跳动大可以在 ADC 通道配置中增加zephyr,acquisition-time。编译报错pinctrl冲突确保你的 overlay 中spi0已经覆写了pinctrl-0为spi0_new_custom否则默认的 pinctrl 配置可能会抢占 P110 引脚导致 GPIO 初始化失败。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

编写网站用什么语言南山做网站哪家专业

JLink调试与系统时钟的隐秘联动:工业控制中的时间一致性实战解析在一条高速运转的自动化生产线上,机械臂的每一次抓取、传送带的每一段启停,都依赖于背后成百上千个嵌入式节点的精确协同。这些系统的“心跳”由时钟驱动,而它们的“…

张小明 2026/1/2 10:03:29 网站建设

雄安建站服务找大学生做家教去哪个网站找好

1. 引言:当你手中的尺子“撒谎”时 做数据分析或机器学习时,我们经常需要回答一个问题:“这个数据点离中心有多远?” 通常,你的第一反应是拿出“欧氏距离”(Euclidean Distance)这把尺子&…

张小明 2026/1/2 10:02:57 网站建设

网站开发公司宣传语重庆家居网站制作公司

第一章:Open-AutoGLM部署概述Open-AutoGLM 是一个面向自动化自然语言任务的开源大模型推理框架,支持多模态输入、动态任务调度与本地化部署。其核心基于 GLM 架构,通过轻量化设计实现高性能推理,适用于企业级知识库问答、智能客服…

张小明 2026/1/2 10:02:25 网站建设

高校档案室网站建设宝安网站改版

QQ空间数据备份神器:3步轻松保存你的数字青春 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 还在担心那些珍贵的QQ空间回忆会随着时间流逝吗?想要完整备份自己的…

张小明 2026/1/2 10:01:53 网站建设

做网站策划营销推广做网站多少费用

Python应用打包终极指南:PyOxidizer如何彻底解决部署难题 【免费下载链接】PyOxidizer A modern Python application packaging and distribution tool 项目地址: https://gitcode.com/gh_mirrors/py/PyOxidizer 你是否曾经因为Python应用的部署问题而夜不能…

张小明 2026/1/2 10:01:21 网站建设

靖安县城乡规划建设局网站logo制作在线生成器

第一章:Open-AutoGLM手机适配的现状与挑战随着大模型技术在移动端的快速渗透,Open-AutoGLM作为一款面向轻量化推理的开源框架,正逐步被集成至智能手机终端。然而,在不同品牌和型号的移动设备上实现稳定高效的运行仍面临诸多挑战。…

张小明 2026/1/2 10:00:49 网站建设