32*32点阵书写屏

32*32点阵书写屏是某一年的电赛题。最近在做的时候遇到一些问题,首先是硬件上的,在32*32点阵驱动问题上,采用8片74HC595,4片作为行驱动,4片作为列驱动。

目前碰到的问题是STM32控制的某一些595不能正确输出,正常来说,每一片595的驱动程序是一样的,那么问题就出在硬件上。经过数天断断续续的检查,发现是STM32有些引脚默认作为了JLINK下载接口。其中C13默认是TAMPER-RTC功能(入侵检测),C14、C15是32.768K晶振的IN和OUT,而画原理图时没有注意,因此要么改原理图,要么继续这几个管脚。经过网上搜索,发现可通过代码修改其功能,作为GPIO使用,代码如下:

//将C13、C14、C15配置成普通IO
    PWR->CR |= 1<<8;                    //取消备份区写保护
    RCC->BDCR &= 0xFFFFFFFE;     //关闭外部低速振荡器,PC14,PC15成为普通IO  
    BKP->CR &= 0xFFFFFFFE;         //侵入检测TAMPER引脚(PC13)作为通用IO口使用
    PWR->CR &= 0xFFFFFEFF;         //备份区写保护</span>

另外,JTAG部分的管脚要用作GPIO,要在初始化时插入如下代码:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO ,ENABLE);
    //只关闭JTAG而保留SWD?GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
    GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

猜你喜欢

转载自www.cnblogs.com/yelanwoting/p/12544411.html