板子DIY中的说明。自己感觉还是挺有才的。
5月23日有更新,电容电阻,按键又添加了很多,所用到的基本补全。未采购的器件CAN没有焊接,其它除少量去耦电容未焊接,其它都喊上了。0欧电阻嫌麻烦没焊接的直接用焊锡短路了。
XiLiHuTu_template.rar
后期的工程文件都是基于此模板编写的程序。
详细的工程建立工程在此不再赘述,参照以上三大教程就可以自主建立模板。
中断方式的USART程序调试成功,部分代码如下:
main.C中的相关代码:
int main (void) 
{ 
 GPIO_InitTypeDef gpioInit;
 USART_InitTypeDef USART_InitStructure; 
 NVIC_InitTypeDef NVIC_InitStructure;
 char *string;
 //----- RCC initialization -------
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO | 
             RCC_APB2Periph_USART1 , ENABLE);
 //RCC_GetClockFreq(&RCC_ClockFreq);
 //----- IO initialization -----   
 gpioInit.GPIO_Pin = led1|led2|led3|led4;
 gpioInit.GPIO_Mode = GPIO_Mode_Out_PP;
  gpioInit.GPIO_Speed = GPIO_Speed_50MHz;
 GPIO_Init(led , &gpioInit);       //initialiazate gpio
 GPIO_SetBits(led , gpioInit.GPIO_Pin); //Set pin
 //GPIO_ResetBits(led , gpioInit.GPIO_Pin); //Reset pin
 // Configure USART1 Tx (PA.09) as alternate push-pull --------
 gpioInit.GPIO_Pin = GPIO_Pin_9;
 gpioInit.GPIO_Speed = GPIO_Speed_50MHz;
 gpioInit.GPIO_Mode = GPIO_Mode_AF_PP;
 GPIO_Init(GPIOA, &gpioInit);
 // Configure USART1 Tx (PA.10) as alternate push-pull --------
 gpioInit.GPIO_Pin = GPIO_Pin_10;
 gpioInit.GPIO_Speed = GPIO_Speed_50MHz;
 gpioInit.GPIO_Mode = GPIO_Mode_IN_FLOATING;
 GPIO_Init(GPIOA, &gpioInit); 
 //----- NVIC initialization -----
 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);   // 抢占式优先级别 
 NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;//指定中断源
 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;// 指定响应优先级别1
 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 NVIC_Init(&NVIC_InitStructure);
                
 //----- UART initialization ---- 
  //0-----串口参数配置------
  USART_InitStructure.USART_BaudRate = 19200;                 //设置波特率为19200
  USART_InitStructure.USART_WordLength = USART_WordLength_8b;  //设置数据位为8位
  USART_InitStructure.USART_StopBits = USART_StopBits_1;       //设置停止位为1位
  USART_InitStructure.USART_Parity = USART_Parity_No;          //无奇偶校验    
  USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; //没有硬件流控
  USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;      //send and receive mode
 //0-----------------------
  USART_Init(USART1, &USART_InitStructure); //initialization USART1
 USART_Cmd(USART1 , ENABLE);  //enable USART1 modulation 
 USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); //enable USART1 interruption
 //查询方式发送数据
 string = "www.hi.baidu.com/th152210\n";
 GPIO_ResetBits(led , led1|led2); //Reset pin
  putString(string,0); //send string
 GPIO_SetBits(led , led1|led2);   //Set pin
 while(1)
 {
 }
}
STM32文件中的相关代码:
void USART1_IRQHandler(void)
{
if(USART_GetFlagStatus(USART1,USART_IT_RXNE)==SET)
{   
 USART_ClearITPendingBit(USART1,USART_IT_RXNE);//清除中断标志          
 USART_SendData(USART1 , USART_ReceiveData(USART1));
} 
}
TIM_OCStructInit(& TIM_OCInitStructure);  //默认参数 
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //工作状态
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;//设定为输出   
TIM_OCInitStructure.TIM_Pulse = 0x2000; //占空长度 
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;//高电平
TIM_OC4Init(TIM3, &TIM_OCInitStructure); //通道初始化 
TIM_Cmd(TIM3, ENABLE); //启动TIM3 
        半个月前,我就开始了我的lcd调试,结果一无所获,原因1是我们单位大学生辞职的辞职,偷懒的偷懒,很多工作都压到我的身上了,所以,我只能在抽自己睡觉的时间开始我的设计和arm学习。2是我没有能够从基础出发,脑子没有条理的头绪。
        今天晚上趁着休班的空,我又开始在eepw上开始我的帖子回复,发帖求工程。静下心来,想想是什么地方出了问题。
        我自己建的程序文件是从别人那复制粘贴的,但错误很多。逐一排查后,将hex下载到的的开发板中,结果屏幕一片白色,没反应。一开始是从fsmc上改程序,怀疑是自己配置的问题。结果愣是把程序改正确后还是没有起色。然后,我才开始从我的驱动部分开始分析问题。
        终于,我开始充满激情的搜我的lcd资料,还是从我买lcd地方看到,我的lcd驱动芯片是ssd1289,一块大石头开始从心里瓦解。因为我的工程文件中的lcd驱动不是ssd1289的。于是乎从其他工程文件"GLCD(show chinese)"中找到了我需要的配置设置,仍然是复制粘贴(我懒的自己编写,太多了,我lcd的资料又没有看全)。结果编译链接下载后,发现屏幕由白色变化成黑色白色各一半的画面。兴奋啊。终于能驱动了。
        以下是我的工程文件。不断更新中,欢迎大家下载使用,仅供测试奥,亲。
th152210-eepw-lcd.rar
回复
| 有奖活动 | |
|---|---|
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
| 【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
| 送您一块开发板,2025年“我要开发板活动”又开始了! | |
			
			
			
						
			
 我要赚赏金
