IAR编译STM8S 中的脚位操作对库函数的一点修改

IAR编译STM8S 自带的库函数都知道,IO口中有个每局定义如下:

typedef enum

{

GPIO_PIN_0    = ((u8)0x01),  /*!< Pin 0 selected */

GPIO_PIN_1    = ((u8)0x02),  /*!< Pin 1 selected */

GPIO_PIN_2    = ((u8)0x04),  /*!< Pin 2 selected */

GPIO_PIN_3    = ((u8)0x08),   /*!< Pin 3 selected */

GPIO_PIN_4    = ((u8)0x10),  /*!< Pin 4 selected */

GPIO_PIN_5    = ((u8)0x20),  /*!< Pin 5 selected */

GPIO_PIN_6    = ((u8)0x40),  /*!< Pin 6 selected */

GPIO_PIN_7    = ((u8)0x80),  /*!< Pin 7 selected */

GPIO_PIN_LNIB = ((u8)0x0F),  /*!< Low nibble pins selected */

GPIO_PIN_HNIB = ((u8)0xF0),  /*!< High nibble pins selected */

GPIO_PIN_ALL  = ((u8)0xFF)   /*!< All pins selected */

}GPIO_Pin_TypeDef;

然后在调用 GPIO_Pin_TypeDef 时,如果传递更多的参数时会提示一下红色字体,虽然不会有什么影响,但看着也别扭

如函数 void GPIO_WriteBit(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin, BitAction GPIO_BitVal)

操作void GPIO_WriteBit(GPIOA, GPIO_PIN_0 , BitAction GPIO_BitVal) //不会提示报警

操作void GPIO_WriteBit(GPIOA, GPIO_PIN_0|PIO_PIN_1 , BitAction GPIO_BitVal) //会提示报警

Warning[Pe188]: enumerated type mixed with another type C:\Program Files\IAR Systems\Embedded Workbench 6.0\stm8\examples\ST-LINK\复件 STM8S105C6-Board\Project\Discover\src\main.c 215

因此我宏定义如下,再次传递多个参数时,就没有出现警告的提示了。

#define GPIO_PIN_0       ((u8)0x01)  /*!< Pin 0 selected */

#define GPIO_PIN_1       ((u8)0x02)  /*!< Pin 1 selected */

#define GPIO_PIN_2       ((u8)0x04)  /*!< Pin 2 selected */

#define GPIO_PIN_3       ((u8)0x08)  /*!< Pin 3 selected */

#define GPIO_PIN_4        ((u8)0x10)  /*!< Pin 4 selected */

#define GPIO_PIN_5        ((u8)0x20)  /*!< Pin 5 selected */

#define GPIO_PIN_6        ((u8)0x40)  /*!< Pin 6 selected */

#define GPIO_PIN_7        ((u8)0x80)  /*!< Pin 7 selected */

#define GPIO_PIN_LNIB     ((u8)0x0F)

#define GPIO_PIN_HNIB     ((u8)0xF0)

#define GPIO_PIN_ALL      ((u8)0xFF)

IAR编译STM8S 中的脚位操作对库函数的一点修改

时间: 2024-10-09 20:38:28

IAR编译STM8S 中的脚位操作对库函数的一点修改的相关文章

使用IAR编译STM8S 如何生产烧录文件

IAR编译后可以生成的烧录文件格式有4中,如下 第一种是Motorola,其生成文件和STVD生成烧录文件.s19格式一样的,即可以通用 第二种是16进制,keil等等常都用到的: 第三种是二进制的,个人比较少用 第四种是??我也没有用过. IAR中格式选择:按图指示: I 至此,重新编译,即可生成想要的烧录文件及其格式. 使用IAR编译STM8S 如何生产烧录文件,布布扣,bubuko.com

编译过程中,termcap.h 文件找不到路径 licli.a终于生成

编译过程中,termcap.h      文件找不到路径 查看是linux  源码下找不到termcap.h文件 安装了所有关于*cap*的源码包也不起作用 今天终于解决了这个问题,搜termcap.h  发现一篇文章,如下 ----------------------------------------------------------------------------------------- 安装minicom2.3出现termcap.h错误解决方法 2010-05-06 17:12:

c语言中的位移位操作

先要了解一下C语言里全部的位运算都是指二进制数的位运算.即使输入的是十进制的数,在内存中也是存储为二进制形式. “<<”使用方法: 格式是:a<<m,a和m必须是整型表达式,要求m>=0. 功能:将整型数a按二进制位向左移动m位,高位移出后,低位补0. “>>”使用方法: 格式是:a>>m,a和m必须是整型表达式,要求m>=0. 功能:将整型数a按二进制位向右移动m位,低位移出后,高位补0 C语言中的移位操作,内容不多.只是有些地方你不注意,就疏

把EXE可执行文件等作为资源包含在Delphi编译文件中

摘自我自己过去写的一段心得. 1.编辑资源文件 *.RCWave: 资源文件是声音文件:RCDATA: 二进制数据AVI: AVI动画:ICON: 图标文件:BITMAP: 位图文件:CURSOR: 光标文件:比如:MyWav WAVE "FileName.Wav" 2.使用Brcc32转化为*.RES文件 3.在工程中引用RES文件比如:{$R MyRes.RES} 4.运行时读入    通过TResourceStream ,比如TResourceStream.Create(HIns

[转载]linux下编译php中configure参数具体含义

编译N次了   原来这么回事 原文地址:linux下编译php中configure参数具体含义作者:捷心特 php编译参数的含义 ./configure –prefix=/usr/local/php                      php 安装目录 –with-apxs2=/usr/local/apache/bin/apxs –with-config-file-path=/usr/local/php/etc      指定php.ini位置 –with-mysql=/usr/local

CUDA程序编译过程中产生警告的解决方法

有时候经常使用别人用Tabhost+其它的实现demo.单纯利用Tabhost该如何使用呢? 下面看例子: public class MainActivity extends TabActivity { public TabHost tabHost; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 获取对象 tabHost = getTabH

解决安卓中页脚被输入法顶起的有关问题

解决安卓中页脚被输入法顶起的问题 在实际开发中,我们对页脚有两种要求:让其固定在底部或者被输入法托起.下面来看看这两种问题的解决办法 问题截图: 1.让页脚固定在底部(无论是否出现输入法) 解决办法:设置软键盘的输入模式:用窗体管理器设置布局参数为自动调整 方法一:java代码中实现:在你的activity中的oncreate中setContentView之前写上这个代码getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_IN

关于c语言中负数位移位操作的漫谈

最近有个朋友在程序中使用了对16进制数做负数移位(编译器是gcc),本人最次产生好奇,所以研究了一些. 对一个数做负数位移位的操作是不规范的,但是是可行的. 具体例子: char tmp = 0x10; tmp = tmp << -1; 大家猜猜结果是什么,有人猜是tmp左移-1位不就是右移1位吗?结果是0x01? 很遗憾,电脑和人脑是不一样的.结果是0 为什么呢?为了找出原因,本人进行了一些小小的测试,并做出了有依据的结果. 由于知道+0和-0的区别,所以,我首先将tmp <<

PHP编译过程中常见错误信息的解决方法

PHP编译过程中常见错误信息的解决方 checking for BZip2 support- yes checking for BZip2 in default path- not found configure: error: Please reinstall the BZip2 distribution Fix: yum install bzip2-devel checking for cURL support- yes checking if we should use cURL for