完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我目前正在设置STM32F407以评估使用瑞萨R61526A显示控制器的显示模块。 我能够使用CubeMX设置项目没有问题,FSMC似乎正在工作。 但是我注意到输出数据字是大端,但我很确定所有STM32都是小端(当使用示波器监视D0-16输出时,uint16_t 0x51ab作为变量变为0xab51)。我没想到FSMC会改变输出的字节顺序。
我希望输出也是小端的,所以我做了一些明显错误的事情吗?显而易见的解决方案是将数据读/写为 *LCDRWregisteraccess= (uint16_t)((0xff00&dataword)>>8)|(0x00ff&dataword<<8));或者只是使用REV16指令,但我想知道FSMC中是否存在我缺少的配置或者我做错了什么。 这也是我的第一个堆栈交换问题,所以如果我没有正确地提出问题,请随意指出 提前谢谢了! |
|
相关推荐
6个回答
|
|
目前还不清楚你在这里问什么。您期望发生什么,实际行为如何偏离预期?例如,数据的MSB是否显示在D15线或D0线上?
|
|
|
|
我期望输出具有与变量相同的位和字节字节顺序(由于STM32是小端,我期望输出相同)。关于你的问题,MSB代表D7线。D8上的LSB等等。简单的解决方法是使用REV16指令,但我很好奇系统的行为方式。我会尽力表达这个问题,谢谢
|
|
|
|
所以,很明显,你在D0线上看到了MSB。
|
|
|
|
不,可以在D7线上看到MSB。如果要从总线输出的数据为0xC000,则在总线上显示为0x00C0。切换上部和下部字节。实际字节中的位顺序不受影响。
|
|
|
|
您使用了16位写入奇数地址(0x63FFF00F),这可能解释了现在的结果。
|
|
|
|
谢谢楼上的解答,在为16位数据字配置FSMC时访问奇数字节使得它执行双重访问(2次写操作),其中字节的顺序错误。
我的地址现在是: #define LCD_CMD 0x60030000 #define LCD_DATA 0x60000000 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1999 浏览 0 评论
STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计
1202 浏览 0 评论
2759 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2534 浏览 3 评论
5216 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-11 14:02 , Processed in 0.571359 second(s), Total 83, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号