stm32错误合集(长期更新)

一、6针oled移植后不显示

 0.96寸6针OLED使用了A15,B3,B4,B5这四个IO。其中PB3,PB4,PA15为系统接口(用作JTAG的调试引脚),如下。

需要进行some设置才可以作为普通IO口使用。

方法一:直接在main函数里面插入

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);//开启复用时钟
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);//关闭JTAG功能
DBGMCU->CR  &= ~((uint32_t)1<<5);//关闭异步跟踪功能

方法二:

//宏定义
#define JTAG_SWD_DISABLE   0X02
#define SWD_ENABLE         0X01
#define JTAG_SWD_ENABLE    0X00	

//定义JTAG_Set函数
void JTAG_Set(u8 mode)
{
	u32 temp;
	temp=mode;
	temp<<=25;
	RCC->APB2ENR|=1<<0;     //开启辅助时钟	   
	AFIO->MAPR&=0XF8FFFFFF; //清除MAPR的[26:24]
	AFIO->MAPR|=temp;       //设置jtag模式
} 

//插在main函数开头
JTAG_Set(JTAG_SWD_DISABLE);     
JTAG_Set(SWD_ENABLE);          
二、can通讯收发不同步

can模块要求5v供电!!!!!我用的3.3v,改回来就是同步的(服了)

三、7寸lcd和mpu6050同时存在时,lcd不显示

可以看到can引脚为PB8,PB9。但是在lcd.h文件内部定义蓝色数据线时也用到了PB8,PB9,引脚重复定义导致lcd显示屏不亮,在此我把PB8,PB9改成了PC8,PC9,lcd成功显示(注意:lcd.h文件里面有两处PB端口需要改动,跟我列出来的一摸一样,大家自己找一下)

/*引脚*/
#define CAN_RX_PIN                 GPIO_Pin_8
#define CAN_TX_PIN                 GPIO_Pin_9
#define CAN_TX_GPIO_PORT           GPIOB
#define CAN_RX_GPIO_PORT           GPIOB

#define LTDC_B6_GPIO_PORT        	GPIOC//
#define LTDC_B6_GPIO_CLK         	RCC_AHB1Periph_GPIOB
#define LTDC_B6_GPIO_PIN         	GPIO_Pin_8
#define LTDC_B6_PINSOURCE        	GPIO_PinSource8
#define LTDC_B6_AF			          GPIO_AF_LTDC

#define LTDC_B7_GPIO_PORT        	GPIOC//
#define LTDC_B7_GPIO_CLK         	RCC_AHB1Periph_GPIOB
#define LTDC_B7_GPIO_PIN         	GPIO_Pin_9
#define LTDC_B7_PINSOURCE        	GPIO_PinSource9
#define LTDC_B7_AF			          GPIO_AF_LTDC

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值