完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
#include "exti.h"
#include "STM32f10x_lib.h" #include "sys.h" #include "delay.h" #include "led.h" #include "Key.h" #include "usart.h" void Exti_Init(){ //PC13输出低电平 RCC->APB2ENR |=1<<4;//enable clock of PORTC RCC->APB2ENR|=1<<0; GPIOC->CRH &= 0xff0fffff; GPIOC->CRH |= 0x00300000;//PC13推挽输出 m默认下拉 GPIOC->ODR &= ~(1<<13); //PC0中断输入 GPIOC->CRL &= 0xfffffff0; GPIOC->CRL |= 0x00000008; GPIOC->ODR |= 1<<0;//上拉 Ex_NVIC_Config(GPIO_C,0,1);//下降沿触发 MY_NVIC_Init(2,2,EXTI0_IRQChannel,2);//抢占2,子优先级2,组2 //将中断线有PA0映射到PC0 //GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource0); //AFIO->EXTICR[0 >> 0x02] &= ~(0x0F << 0x04); //AFIO->EXTICR[0 >> 0x02] |= 0x01; AFIO->EXTICR[0] &= 0xffffff0f; AFIO->EXTICR[0] |= 0x00000010; } //中断处理函数 void EXTI0_IRQHandler(){ u16 i = 0; u16 key; LED0 = !LED0; delay_ms(10);//消抖 if (PCin(0) == 0) { printf("please input the number:t"); Key_Init(); //按键扫描5s while (1) { key = Key_Scan(); if (key <16) { printf("%d",key); } i++; if (i ==500 ) { i = 0; break; } delay_ms(10); } } Exti_Init(); } #ifndef __EXTI_H #define __EXIT_H #include "sys.h" void Exti_Init(void); #endif 我是用的pc0 2 3 4 口输出 PC5 11 12 13输入,可是不知道为什么就是加上我的中断(程序如上)后显示就是白屏 |
|
相关推荐
10个回答
|
|
|
这是参考论坛上的程序自己修改的,也不知道是不是可以,
|
|
|
|
|
|
|
|
|
|
|
|
拔了 还怎么看效果?
|
|
|
|
|
|
原子老师我照者把这PC11 C 12 去掉了,就改的你的KEY.C中的代码。如此啊。咋不还是不行呢
u8 trg; u8 cont = 0; u8 keyData; void keyRead() { keyData = (PCin(5))^0xff; trg = keyData&(keyData^cont); cont = keyData; } void Key_Init() { //PC0234输出 RCC->APB2ENR |=1<<4;//enable clock of ORTC GPIOC->CRL &= 0xfff000f0; GPIOC->CRL |= 0x00033303;//PC0234推挽输出 GPIOC->ODR |= 1<<0;//PC0上拉 GPIOC->ODR |= 1<<2; GPIOC->ODR |= 1<<3; GPIOC->ODR |= 1<<4; //PC5输入 GPIOC->CRL &= 0xff0fffff; GPIOC->CRL |= 0x00080000; GPIOC->ODR |= 1<<5; /*//PC 11 12 13 输入 GPIOC->CRH &= 0xff000fff; GPIOC->CRH|= 0x00888000; GPIOC->ODR |= 1<<11; GPIOC->ODR |= 1<<12; GPIOC->ODR |= 1<<13;//上拉 */ } //矩阵扫面函数 u16 Key_Scan(){ GPIOC->ODR |= 1<<0;//PB0上拉 GPIOC->ODR |= 1<<2; GPIOC->ODR |= 1<<3; GPIOC->ODR |= 1<<4; //PC0下拉 GPIOC->ODR &= ~(1<<0); if (M4 == 0 ) { //delay_ms(10);//消抖 keyRead(); if (trg == 0x1) { return 0; } /*else if(trg == 0x2) { return (1*4); }else if (trg == 0x4) { return (2*4); }else if (trg ==0x8) { return 3*4; } */ } //开始扫描下一行 GPIOC->ODR |= 1<<0;//PB0上拉 GPIOC->ODR |= 1<<2; GPIOC->ODR |= 1<<3; GPIOC->ODR |= 1<<4; //PC2下拉 GPIOC->ODR &= ~(1<<2); if (M4 == 0 ) { //delay_ms(10);//消抖 keyRead(); if (trg == 0x1) { return 1; } /*else if(trg == 0x2) { return (1+1*4); }else if (trg == 0x4) { return (1+2*4); }else if (trg == 0x8) { return (1+3*4); } */ } //扫描第三行 GPIOC->ODR |= 1<<0;//PB0上拉 GPIOC->ODR |= 1<<2; GPIOC->ODR |= 1<<3; GPIOC->ODR |= 1<<4; //PC3下拉 GPIOC->ODR &= ~(1<<3); if (M4 == 0 ) { //delay_ms(10);//消抖 keyRead(); if (trg == 0x1) { return 2; } /*else if(trg == 0x2) { return (2+1*4); }else if (trg == 0x4) { return (2+2*4); }else if (trg == 0x8) { return (2+3*4); } */ } //扫描第四行 GPIOC->ODR |= 1<<0;//PB0上拉 GPIOC->ODR |= 1<<2; GPIOC->ODR |= 1<<3; GPIOC->ODR |= 1<<4; //PC4下拉 GPIOC->ODR &= ~(1<<4); if (M4 == 0 ) { //delay_ms(10);//消抖 keyRead(); if (trg == 0x1) { return 3; } /*else if(trg == 0x2) { return (3+1*4); }else if (trg == 0x4) { return (3+2*4); }else if (trg == 0x8) { return (3+3*4); } */ } return 16; } |
|
|
|
|
|
这我就不清楚了,软件仿真下了
|
|
|
|
|
|
扛不住了啊,在B口可以用的,而且联系上LED等的话,也亮啊,可是改成我的C口就不行了。原子老师你的板子那些口还可以让我拿来用啊,我至少需要8个口啊
|
|
|
|
|
|
我们的板子C口接了很多外设,如果使用,有可能存在干扰.这个你要特别留意.比如IIC的.或者SPI的.
|
|
|
|
|
|
直接就告诉他 你呀别想太多了,老老实实用B吧
|
|
|
|
|
|
那我把C口用的那些程序去掉,不占用是不是可以用呢,只要我不配置相应的C口,那不就是可以用了啊,不知道是否可以
|
|
|
|
|
|
要结合电路图看.
|
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
4140 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
3228 浏览 1 评论
2753 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
2181 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
14984 浏览 2 评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
3092浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
1898浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
2070浏览 3评论
1981浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
2171浏览 3评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 03:09 , Processed in 3.565537 second(s), Total 93, Slave 75 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1886