嵌入式开发笔记-CCS平台-MSP432

注意事项

1、使能中断的单位是端口,因此无法做到只使能端口的某个引脚的中断而不使能该端口的其他引脚。所以如果一个端口有多个引脚是中断源,那么中断子程中应当增加语句,判断是哪一个中断源触发了中断。

2、中断子程不能传入参数、不能有返回值,应当是简短、高效的(在中断中做浮点运算、printf等操作是不明智的)。

3、条件表达式(<表达式1>?<表达式2>:<表达式3>)比if-else语句在优化方面更好。

4、除非要利用溢出归零特性,否则循环变量一般使用无符号整型数(unsigned int)。

5、为了使程序更加高效,建议将所有函数的参数都控制在4个及以下。

6、CCS不支持引用传递!若想在函数中直接操作外部的变量,请使用指针传递。


SDK库-GPIO相关

//宏名
GPIO_PORT_P1(MSP432一般使用P1~P6)
GPIO_PIN0(MSP432一般使用PIN0~PIN7)

//最常用
GPIO_setAsInputPin(GPIO_PORT_P1,GPIO_PIN0);
GPIO_setAsOutputPin(参数同上);
GPIO_getInputPinValue(参数同上);    //返回值为对应的电平(0x1或0x0)
GPIO_setOutputHighOnPin(参数同上);
GPIO_setOutputLowOnPin(参数同上);
GPIO_toggleOutputOnPin(参数同上);    //输出取反

//常用中断相关
GPIO_disableInterrupt(GPIO_PORT_P1,GPIO_PIN0);    //禁止
GPIO_enableInterrupt(GPIO_PORT_P1,GPIO_PIN0);        //使能
GPIO_interruptEdgeSelect(GPIO_PORT_P1,GPIO_PIN0,边沿);    //边沿可选:GPIO_LOW_TO_HIGH_TRANSITION或GPIO_HIGH_TO_LOW_TRANSITION
GPIO_getEnabledInterruptStatus(GPIO_PORT_P1);        //返回值为选定端口的所有引脚中断信息
GPIO_getInterruptStatus(GPIO_PORT_P1,GPIO_PIN0);    //返回值选定端口、引脚的中断信息(返回的是BITx,而非单纯的0x0或0x1)
GPIO_clearInterruptFlag(GPIO_PORT_P1,GPIO_PIN0);
GPIO_registerInterrupt(GPIO_PORT_P1,PORT1_IRQHandler);    //中断注册,PORT1_IRQHandler是函数名可以随便写,但要记得在main函数之前进行声明(定义可前可后)
GPIO_unregisterInterrupt(GPIO_PORT_P1,PORT1_IRQHandler);    //解注册

//不常用
GPIO_setAsInputPinWithPullDownResistor(GPIO_PORT_P1,GPIO_PIN0);
GPIO_setAsInputPinWithPullUpResistor(参数同上);
GPIO_setDriveStrengthHigh(参数同上);    //强驱动
GPIO_setDriveStrengthLow(参数同上);    //弱驱动(无特殊需求,一般不用设置)

//几乎不用,需要使用时自行查看参数、返回值等详细信息
GPIO_setAsPeripheralModuleFunctionInputPin();
GPIO_setAsPeripheralModuleFunctionOutputPin();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值