STM32IO口8位操作移位的方式
当我们采用并口传输数据的时候都会用如下的方法进行数据传输
#define DATAOUT(x) GPIOB->ODR=x;
STM32IO口都是16位的,所以当调用DATAOUT的时候就直接对GPIOB的16个IO口总体进行操作。但是我们如果只是选择高8位或者低8位的时候就需要进行移位操作,到底该怎么移位呢现在我们来看如下代码。
如果我们选择的是0-7位IO口那么传输数据的时候代码如下
void LCD_DrawPoint_16Bit(u16 color)
{
#if LCD_USE8BIT_MODEL==1
LCD_CS_CLR;
LCD_RD_SET;
LCD_RS_SET;//дµØÖ·
DATAOUT(color>>8); //先传输高8位所以把高8位先往低8位移动
LCD_WR_CLR;
LCD_WR_SET;
DATAOUT(color); //直接传输低8位
LCD_WR_CLR;
LCD_WR_SET;
LCD_CS_SET;
#else
LCD_WR_DATA(color);
#endif
}
由上面可以看到如果是选择的低8位数据都是往低8位移动。
void LCD_DrawPoint_16Bit(u16 color)
{
#if LCD_USE8BIT_MODEL==1
LCD_CS_CLR;
LCD_RD_SET;
LCD_RS_SET;//дµØÖ·
DATAOUT(color); //由于是先传高位所以这里不用移位(io口选择的时候高8位)
LCD_WR_CLR;
LCD_WR_SET;
DATAOUT(color<<8); //低8位的时候需要把低8位数据往高8位移动
LCD_WR_CLR;
LCD_WR_SET;
LCD_CS_SET;
#else
LCD_WR_DATA(color);
#endif
}
这是选择高8位IO口代码都是把低8位数据往高8位方向移动。
STM32IO口8位操作移位的方式相关推荐
- I/0口输入输出实验 学习IO口的位操作方法,分别选择P0、P1、P2、P3端口中的某一位,该位作为输出使用,连接一只发光二极管,控制器闪烁。
学习IO口的位操作方法,分别选择P0.P1.P2.P3端口中的某一位,该位作为输出使用,连接一只发光二极管,控制器闪烁. 程序: #include<reg51.h> sbit KEY=P1 ...
- IO 口的位操作实现
一.概念 该部分代码在 sys.h 文件中,实现对 STM32 各个 IO 口的位操作,包括读入和输出.当然在这些函数调用之前,必须先进行 IO 口时钟的使能和 IO 口功能定义.此部分仅仅对 IO ...
- STM32 IO口的8中配置方式解读(推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入、浮空输入、模拟)
转自:http://blog.csdn.net/u010592722/article/details/45746079 STM32 IO口的8中配置方式: (1)GPIO_Mode_AIN 模拟输入 ...
- 【转载】瑞萨CS+ for CC对单片机IO口进行位操作
出处:https://www.sekorm.com/news/25653139.html 瑞萨科技是世界十大半导体芯片供应商之一,在汽车领域的MCU市场份额更是排在最前列.近日笔者碰到刚接手瑞萨MCU ...
- 51单片机STC89C52点亮一个LED(IO口的位操作)
51单片机点亮一个LED(IO口的位操作)STC89C52 程序源码 /*-----------------------包含头文件区域-------------------------*/ #incl ...
- 引脚悬空是什么电平_STM32单片机必须掌握的八种IO口模式和引脚配置方式
八种IO口模式STM32有八种IO口模式,分别是:模拟输入.浮空输入.上拉输入.下拉输入.开漏输出.推挽输出.复用开漏输出和复用推挽输出.1.模拟输入GPIO_Mode_AIN模拟输入,即关闭施密特触 ...
- stm32IO口八种工作模式详细解析(附原理图)
目录 工作模式介绍 常用IO口工作模式分析 实际应用 很多小伙伴们在初学stm32时都对stm32的IO口工作模式的原理和配置不了解,所以我整理发表此篇文章作为自己复习和他人参考资料.(注:该文章参考 ...
- 通过移位的方式实现相加算法
#include <iostream> //加减乘除,都是靠位运算, //将来从事手机端,嵌入式开发,位操作, class jia;//声明,只能声明指针或者引用 jia *pji ...
- 关于stm32io口保护二极管的作用
这是在百度上看到的一个答案,写的很清楚,记录一下,侵删 原作者oldmanwsb2 原链接https://www.baidu.com/link?url=yUSvGWG9o5tk1xRvBt6jE360 ...
最新文章
- 主席树 | 莫队 ---- Codeforces Round #716 (Div. 2) D. Cut and Stick [主席树or莫队优化] 区间众数问题(静态)
- 日周月筛选器_天谕2.09月3日周版本更新维护内容预告
- [转载]注册机破解法的原理以及应对方法
- TabBarItem图片不显示的原因
- 【Python】监控视频中运动目标检测的代码实现及效果展示
- python修改父类属性_Python super和设置父类属性
- Restlet入门示例
- 使用代理同步Chromium代码的心得(V2.0)
- Sequence(BZOJ-1345)
- Oracle SqlLoader使用
- linux安全策略加固文档_系统加固之Linux安全加固
- Filter的敏感词汇过滤案例
- 点云深度学习——点云配准网络DCP复现
- Android低功耗蓝牙通讯
- 使用C#的Winform实现图文识别OCR及截图功能
- 括号序列(DP优化)
- 卡西欧计算机怎么进制转换,卡西欧计算机怎么把十进制转换二进制
- Swift函数式编程十三(函子、适用函子、单子)
- 【离散数学笔记】逻辑运算之吸收律
- linux中C编译命令,linux下命令行下编译c程式
热门文章
- MongoDB安装注意事项、安装流程与配置
- 苹果se2_苹果SE2双卡双待3月发布,你会买吗?
- MICROSOFT OFFICE MSDT操作系统命令注入漏洞(CVE-2022-30190)
- 阿尔法编程平台python答案_阿尔法编程python答案
- MindSpore:Ascend芯片Mindspore代码实现小样本图像分类,在网络训练时出现错误
- [Effective Objective] 熟悉Objective-C
- 三次握手过程和四次握手过程
- 计算机毕业设计SSM房屋中介管理信息系统【附源码数据库】
- ThinkPad 开机总提示找到新硬件 PCI Device
- TIFF数据格式实例分析