打印
[STM8]

STM8L使用固件库去操作pA口中断可行吗

[复制链接]
1034|39
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
llljh|  楼主 | 2021-10-12 23:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
由于硬件PA2口使用一个按键,所以只能使用PA2中断,我在使用库函数去写中断的时候,发现没有A端口的中断接口啊?如下:
void Key_Input_Init() {
  GPIO_Init(GPIOA,GPIO_Pin_2, GPIO_Mode_In_PU_IT);
  EXTI_SetPinSensitivity(EXTI_Port_B , EXTI_Trigger_Falling);        //想改这个为A端口
  EXTI_SetHalfPortSelection(EXTI_HalfPort_D_LSB , DISABLE);            //设置PD[3:0]作为外部线号通用中断
}

typedef enum
{
  EXTI_Port_B = (uint8_t)0x00, /*!< GPIO Port B */
  EXTI_Port_D = (uint8_t)0x02, /*!< GPIO Port D */
  EXTI_Port_E = (uint8_t)0x04, /*!< GPIO Port E */
  EXTI_Port_F = (uint8_t)0x06, /*!< GPIO Port F */
  EXTI_Port_G = (uint8_t)0x10, /*!< GPIO Port G */
  EXTI_Port_H = (uint8_t)0x12  /*!< GPIO Port H */
} EXTI_Port_TypeDef;

使用特权

评论回复
沙发
llljh|  楼主 | 2021-10-12 23:10 | 只看该作者
来个大神咯,手册上的中断向量是有PA口的,但是其库函数就没有,多了几个EFG口,但是芯片根本没这几个端口啊?现在是什么情况

使用特权

评论回复
板凳
stly| | 2021-10-12 23:12 | 只看该作者
参考原子或野火的例程看看;

使用特权

评论回复
地板
llljh|  楼主 | 2021-10-12 23:13 | 只看该作者
不明白,能具体说说嘛,原子核和野火的历程在哪有

使用特权

评论回复
5
chuxh| | 2021-10-12 23:15 | 只看该作者
每个端口中 Pin 号相同的引脚共用一个中断资源,如 PA2、PB2、PC2、PD2(Px2)

使用特权

评论回复
6
dengdc| | 2021-10-12 23:17 | 只看该作者
USER KEY连到的是PC.1所以使用的是EXTI1中断线
首先我们把KEY的GPIO设置为输入中断使能

GPIO_Init(KEY_PORT,KEY_PIN,GPIO_Mode_In_FL_IT);

然后配置中断1为下降沿低电平触发

EXTI_SetPinSensitivity(EXTI_Pin_1, EXTI_Trigger_Falling_Low);

设置中断的优先级

ITC_SetSoftwarePriority(EXTI1_IRQn, ITC_PriorityLevel_1);

开全局中断

enableInterrupts();

最后我们到中断文件里面STM8L15X_it.c设置

INTERRUPT_HANDLER(EXTI1_IRQHandler, 9)

{

  /* In order to detect unexpected events during development,

     it is recommended to set a breakpoint on the following instruction.

  */

  GPIO_ToggleBits(GPIOE, GPIO_Pin_7);

  Delay(0xFFFF);

  EXTI_ClearITPendingBit(EXTI_IT_Pin1);

}

使用特权

评论回复
7
zhanghqi| | 2021-10-12 23:19 | 只看该作者
参考上面的。EXTI_SetPinSensitivity这个函数你写错了。

使用特权

评论回复
8
zhuhuis| | 2021-10-12 23:27 | 只看该作者
网上可以下载的,在不行就是谈们的开发板会带例程

使用特权

评论回复
9
pengf| | 2021-10-12 23:29 | 只看该作者
ucosii使用OSTimeDlyHMSM函数任务不切换

使用特权

评论回复
10
dengdc| | 2021-10-12 23:31 | 只看该作者

首先,大多数人都习惯用OSTimeDly()
其次,你这个问题问的很空,没办法回答你

使用特权

评论回复
11
jiajs| | 2021-10-12 23:33 | 只看该作者
同楼上的,这个问题没头没尾,确实不知道从何处下手。

使用特权

评论回复
12
wangzsa| | 2021-10-12 23:35 | 只看该作者
应该是可以的,找一下例程

使用特权

评论回复
13
renyaq| | 2021-10-12 23:37 | 只看该作者
应该是可行的

使用特权

评论回复
14
chenjunt| | 2021-10-12 23:39 | 只看该作者
我觉得没有问题啊

使用特权

评论回复
15
wangzsa| | 2021-10-12 23:41 | 只看该作者
当然可以了

使用特权

评论回复
16
xxrs| | 2021-10-12 23:42 | 只看该作者
个人觉得没有任何问题

使用特权

评论回复
17
huangchui| | 2021-10-12 23:44 | 只看该作者
应该没有问题

使用特权

评论回复
18
llljh|  楼主 | 2021-10-12 23:46 | 只看该作者

哦,那我就知道怎么回事了,多谢大家

使用特权

评论回复
19
paotangsan| | 2021-11-3 17:10 | 只看该作者
我觉得可行

使用特权

评论回复
20
renzheshengui| | 2021-11-3 17:11 | 只看该作者
我觉得没有啥问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

855

主题

11301

帖子

6

粉丝