在上一帖中我忘记提及如何使用CMSISDAP下载器进行程序下载和TTL串口调试,本帖补上CMSISDAP串口驱动安装教程。
首先如果安装了MDK5系列的话,DAP下载器的驱动是肯定会顺便安装上的,在工程的Debug界面下可以看到DAP下载器的配置:
这个非常简单,就不详细讲,先讲串口驱动安装,Windows系统默认是没有CMSISDAP驱动的,需要手动安装,提供的资料中带了CMSISDAP驱动,直接安装即可,首先要将usbser.sys文件放到C:\Windows\INF目录下覆盖:
然后将剩下的mdmcpq.inf和stmcdc.inf放到一个文件夹下,在设备管理器中安装,安装完毕之后即可识别:
为了方便大家,我将这三个文件打包发到论坛上:
然后是SPI彩屏驱动,彩屏需要三根引脚,CLK MOSI CS,时钟,数据,片选,我一开始打算使用核心板上引出的SPI FLASH引脚(PB2 PB3 PB4)作为复用来驱动彩屏的,谁知道怎么都点不亮:
我又用了别的F407开发板(没有SPI器件引脚复用)作为对照,是可以点亮的,后面我就干脆不折腾了,直接用三根GPIO(PF9 PF11 PF13)模拟SPI时序来点亮液晶彩屏:
成功点亮了:
附上驱动代码:
unsigned char SPI1_ReadWriteByte(unsigned char txdata)
{
int i;
for(i=0;i<8;i++)
{
SPILCD_CLK_CLR;
if(txdata&0x80)
SPILCD_DI_SET;
else SPILCD_DI_CLR;
SPILCD_CLK_SET;
txdata<<=1;
}
}
void SPILCD_Send_Command(unsigned char out_cmd)
{
SPILCD_CS_CLR;
SPI1_ReadWriteByte(out_cmd);
SPILCD_CS_SET;
}
void SPILCD_Send_Data(unsigned int out_data)
{
SPILCD_CS_CLR;
SPI1_ReadWriteByte(out_data>>8);
SPI1_ReadWriteByte(out_data);
SPILCD_CS_SET;
}
然后是SYSTICK延时,非常简单,参考原子的代码即可:
void Delay_us(int nus)
{
int temp;
SysTick->LOAD=nus*fac_us;
//时间加载
SysTick->VAL=0x00;
//清空计数器
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ;
//开始倒数
do
{
temp=SysTick->CTRL;
}while((temp&0x01)&&!(temp&(1<<16)));
//等待时间到达
SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;
//关闭计数器
SysTick->VAL =0X00;
//清空计数器
}
void Delay_ms(short nms)
{
unsigned char repeat=nms/540;
int temp;
//这里用540,是考虑到某些客户可能超频使用,
//比如超频到248M的时候,delay_xms最大只能延时541ms左右了
short remain=nms%540;
while(repeat)
{
SysTick->LOAD=(int)540*fac_ms;
//时间加载(SysTick->LOAD为24bit)
SysTick->VAL =0x00;
//清空计数器
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk;
//开始倒数
do
{
temp=SysTick->CTRL;
}while((temp&0x01)&&!(temp&(1<<16)));
//等待时间到达
SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;
//关闭计数器
SysTick->VAL =0X00;
//清空计数器
repeat--;
}
if(remain)
{
SysTick->LOAD=(int)remain*fac_ms;
//时间加载(SysTick->LOAD为24bit)
SysTick->VAL =0x00;
//清空计数器
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk;
//开始倒数
do
{
temp=SysTick->CTRL;
}while((temp&0x01)&&!(temp&(1<<16)));
//等待时间到达
SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;
//关闭计数器
SysTick->VAL =0X00;
//清空计数器
}
}
【F407开发板】CMSISDAP驱动安装&驱动SPI彩屏&SYSTICK
http://www.stmcu.org.cn/module/forum/thread-618996-1-1.html
|