久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2363|回復: 0
收起左側

STM32學習筆記

[復制鏈接]
ID:127084 發表于 2016-6-17 12:19 | 顯示全部樓層 |閱讀模式
0.  注意:新建STM32工程時,添加STM32F10X_HD宏和設置頭文件路徑十分重要,弄不好久編譯不了。有時頭文件前需要打兩點,有時一次設置路徑不會成功,需多次設置。我就被這個困擾了好久。
1.       USART1通用同步異步收發器:
編程:
.初始化串口,因為串口也要用IO口進行收發數據,所以初始化串口時要申明兩個結構化類型參數( GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure;)分別對IO口和串口外設進行初始化。給兩個結構化類型參數賦初值用來設置兩個外設。IOTXPA09RXPA10調用IO口初始化外設函數GPIO_Init完成。USART1:調用串口初始化外設函數USART_Init完成。
.開啟時鐘。同上也要開啟兩個時鐘源(RCC_APB2Periph_GPIOARCC_APB2Periph_USART1)。調用APB2時鐘源開啟函數RCC_APB2PeriphClockCmd完成。
3 .使能USART1外設,USART不同于IO口外設它要使能,調用使能USART外設函數USART_Cmd完成。
4 .編寫輸出打印函數,重定向Printf函數或自定義USART1_printf函數。
5 .Main.c中調用Printf函數或自定義USART1_printf函數在串口助手上顯示要輸出的信息。
6 .若有接收從上位機發來的信息時,要用到接收中斷,在stm32f10x_it.c中編寫中斷服務函數。當然用到中斷時要配置嵌套向量中斷控制器NVIC。調用NVIC_Init函數完成,也要申明中斷控制器結構體類型參數       NVIC_InitTypeDef NVIC_InitStructure;
注意:
1. 用的電源不穩定時,會造成串口接收的數據亂碼。
2.  /數轉換器(ADC):
    編程:AD采集通過串口顯示電壓,串口編程部分跳過
1.初始化串口。
2.初始化AD,寫AD轉換地址#define ADC1_DR_Address    ((u32)0x40012400+0x4c),使能ADC1DMA1的時鐘,初始化串口IOPC.01。調用RCC_AHBPeriphClockCmd使能DMA1時鐘,
3.調用RCC_APB2PeriphClockCmd使能ADC1時鐘。設置PC.01為模擬輸入模式不設置速率。配置ADC1的工作模式為DMA模式,設置DMA1外設的一系列參數配置,使能DMA1外設模塊。
4.設置ADC1采樣模式,配置一系列ADC1的參數。配置ADC1時鐘,使能ADCDMA外設使能ADC外設模塊。開啟校準器,軟件觸發ADC轉換。
5.在主函數中計算轉換AD的值。用串口顯示出來。
3.  RTC實時時鐘   
/*要想改變設置初值,就將下面if判斷去掉直接上電就執行if后面的語句
(當然也要將后面的else去掉,否則會編譯不過去)。做完上面的活編譯
下載,在串口中設置時間初值(通過串口發送字符型數據)。不斷電不復
位,再將if判斷補上,時間初值就設定好了,下次打開無需在設置。*/  

4. 野火液晶屏上的LCD.C中的void LCD_Str_ENCH_O_P(u16 x,u16 y,const u8 *str,u16 Color)中第1096行的有一個錯誤:    Tmp_y    += 8 ;錯寫成了     Tmp_x    += 8 ;導致液晶顯示的時候遇到逗號就錯位全文看不清。根據我的創作經驗,可以將中文標點符號換成英文標點符號輸出,而不是像野火那樣僅僅將中文逗號換成空格,本人認為可以找出全部的中文標點符號的碼值,再在調用字庫前判斷碼值,如果是中文則換為英文符(因為一般漢字字庫中沒有標點符號的。如野火的這種。而英文字符庫中標點都有,在液晶上顯示時,中英文符號區別不大)。
  關于找碼值:在文件中一個中文漢字的碼值共16位。分為高低各八位,高八位為行,低八位為列。但這16位行列數據在文件中是分開存儲的。要找到一個漢字或符號,必須先判斷高八位(行數據)再判斷低八位(列數據)低八位在高八位后一字節,如*str*(str+1)。例如:野火的液晶程序中沒有中文標點符號。我修改后的程序中找中文符號碼值就是用的這種方法。

5.移植彩屏觸摸函數到別的工程中,不用再去編寫彩屏驅動和LCD應用函數(如畫圓,寫字等)
  1.在工程USER中加入兩個頭文件asc_font.hascii.h
  2.在工程中添加四個文件(可直接復制到USER中再添加進工程)分別是lcd.clcd_botton.csystick.cTouch.c、和相應的頭文件lcd.hlcd_botton.hsystick.hTouch.h、。
  3.修改stm32f10x_conf.h文件中包含的頭文件,將彩屏需要的外設頭文件的注釋去掉。分別是: #include "stm32f10x_exti.h"
#include "stm32f10x_fsmc.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_spi.h"
#include "misc.h"
   4.在工程界面的FWlib欄中添加misc.c stm32f10x_exti.c stm32f10x_fsmc.cstm32f10x_spi.c 四個函數。
   5.編寫中斷函數,在stm32f10x_it.c中編寫void EXTI9_5_IRQHandler(void)中斷服務函數,并加入頭文件#include<stm32f10x_exti.h> #include <stm32f10x_tim.h>。觸摸中斷。
     在中斷函數中加入
volatile unsigned char touch_flag=0;
extern void TimingDelay_Decrement(void);
extern void Delay_us(__IO u32 nTime);
   6.至此就可在工程中調用函數對彩屏進行操作。
6 文件系統移植:
  ff9里面的文件除OPTION00README外全部復制到USER中,并將CC936.c也復制到USER中,增加頭文件搜索路徑。在工程面板上的USER項中添加ff9中的C文件并在主函數中INCLUDE他們的頭文件


已成功!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕精品一区久久久久 | 亚洲午夜一区二区 | 一级毛片,一级毛片 | 一级免费视频 | 日日想夜夜操 | 亚洲精品一 | 91在线网站| 九九热视频这里只有精品 | 夜夜夜夜夜夜曰天天天 | 国产精品亚洲精品日韩已方 | 影音先锋成人资源 | 午夜精品久久久久久久星辰影院 | 99久久久无码国产精品 | 狠狠操狠狠干 | 天天操夜夜爽 | 久久国产激情视频 | 日本成人中文字幕在线观看 | 色橹橹欧美在线观看视频高清 | 欧美精品欧美精品系列 | 免费一级做a爰片久久毛片潮喷 | 久久综合一区 | wwwxxx国产 | 婷婷综合 | 亚洲国产精品自拍 | 国产精品一区二区无线 | 欧美日韩视频在线 | 一区二区三区欧美 | 91精品国产综合久久小仙女图片 | 亚洲国产精品一区二区三区 | www日韩欧美| 亚洲午夜精品一区二区三区他趣 | www.97zyz.com| 日日操天天射 | 久久精品一级 | 久久伊人青青草 | 国产农村妇女精品一区 | 久久久爽爽爽美女图片 | 97日日碰人人模人人澡分享吧 | 一区二区三区在线 | 日韩欧美一区在线 | 祝你幸福电影在线观看 |