完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
我正在将 STM32H743II 与 8080 并行总线 LCD 接口。我在 CubeMX 中将 FMC 配置为具有 16 位总线的 LCD 接口,并将 A11 配置为 R/S 引脚。但是,我在将命令/数据写入 LCD 时遇到了问题。在 0x68000000 地址下的单个 uint16_t 写入导致 4 次写入内存,其中第一次写入是有效数据,其余为 0,如逻辑分析仪快照所示。 写入由以下代码执行:
我也尝试了 HAL_SRAM_Write_16b(),但结果是一样的。 这些写入基本上编译为 strh(存储寄存器半字)指令,执行这条指令会导致 4 次对 LCD 的写入访问。经过一番调查,我注意到,在递增地址下写入,例如 0x68000002 仅在第二次写入操作中导致有效数据,在 0x68000004 下写入仅在第三次写入操作中导致有效数据,依此类推。这就像 FMC 试图一次写入整个 64 位内存块。 ICache 和 DCache 被禁用,我尝试禁用 FMC 写入 FIFO,但它并没有太大变化。不用说,这种 FMC 行为会中断与 LCD 的通信。 我没有考虑到一些细节吗?我想避免 bitbanging LCD 信号或改变硬件设计。 |
|
相关推荐
1个回答
|
|
|
我通过将 fmc SRAM 重新映射到 0xC0000000 解决了这个问题;
HAL_SetFMCMemorySwappingConfig(FMC_SWAPBMAP_SDRAM_SRAM); 为什么这有效?0xC0000000 以下的内存作为设备内存访问,而不是以下的内存 0x60000000 作为普通内存访问。“普通内存允许 CPU 以高效方式安排字节、半字和字的加载和存储(编译器不知道内存区域类型)”。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
stm32mp157的异核通信的rpmsg_sdb的m4固件和a7驱动该如何编写?
1453 浏览 0 评论
stm32f103用freertos对一个采样率为1kHz的传感器,进行采样,数据出差
1502 浏览 0 评论
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
3649 浏览 1 评论
3842 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
2461 浏览 1 评论
STM32H7打开DCache后,出现了串口接收信息为空的现象,是哪里出了问题?
727浏览 5评论
用NANO STM32F103RBT6的开发板烧录不了是哪里出了问题?
663浏览 5评论
710浏览 5评论
外部中断触发类型为双边沿触发,进入中断回调后有什么办法判断该边沿是上升沿还是下降沿?
941浏览 5评论
STM32L071CBT6低温环境下无法正常工作是什么原因引起的?
745浏览 5评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 08:21 , Processed in 0.755267 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
160