一、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