<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • x
    x
    查看: 4857|回復: 1
    打印 上一主題 下一主題

    [提問] TFT圖片顯示

    [復制鏈接]
    跳轉到指定樓層
    樓主
    發表于 2012-3-17 15:18:47 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
    關鍵詞: 16位數據同時送TFT , 為什么圖片掃描不出來
    1. #include "stm32f10x.h"
    2. //#include "JPG.h"
    3. #include "JPG1.h"
    4. //#include "JPG2.h"



    5. /*

    6. 控制線:RS-P3^5; WR-P3^6; RD-P3^7; CS-P1^0; REST-P1^1;

    7. 數據線: DB0-DB7依次連接P0^0-P0^7; DB8-DB15依次連接P2^0-P2^7;

    8. 觸摸功能連接方式:(不使用觸摸可不連接)
    9. D_CLK-P1^2; D_CS-P1^3; D_DIN-P1^4; D_OUT-P1^6; D_PENIRQ-P1^7;

    10. SD卡接線;(不使用觸摸可不連接)
    11. SD_MISO-P31; SD_SCK-P32; SD_MOSI-P33; SD_CS-P34;
    12. */


    13. #define LCD_RS_1 GPIO_SetBits(GPIOB,GPIO_Pin_0)
    14. #define LCD_RS_0 GPIO_ResetBits(GPIOB,GPIO_Pin_0)
    15. #define LCD_RW_1 GPIO_SetBits(GPIOB,GPIO_Pin_1)
    16. #define LCD_RW_0 GPIO_ResetBits(GPIOB,GPIO_Pin_1)
    17. #define LCD_RD_1 GPIO_SetBits(GPIOE,GPIO_Pin_2)
    18. #define LCD_RD_0 GPIO_ResetBits(GPIOE,GPIO_Pin_2)
    19. #define LCD_CS_1 GPIO_SetBits(GPIOE,GPIO_Pin_3)
    20. #define LCD_CS_0 GPIO_ResetBits(GPIOE,GPIO_Pin_3)

    21. #define LCD_REST_1 GPIO_SetBits(GPIOE,GPIO_Pin_4)
    22. #define LCD_REST_0 GPIO_ResetBits(GPIOE,GPIO_Pin_4)
    23. #define Data GPIOF->ODR
    24. //#define LCD_DataPortH GPIOF->ODR
    25. //#define LCD_DataPortL GPIOG->ODR

    26. void delay_nus(unsigned long n);
    27. void delay_nms(unsigned long count);
    28. void RCC_Configuration(void);
    29. void GPIO_Configuration(void);





    30. /******************************************************
    31. ** 函數名:void Lcd_Write_Com( int DH)
    32. ** 描述 :TFT寫命令
    33. ** 輸入 : 無
    34. ** 輸出 :無
    35. ** 返回 :無
    36. ******************************************************/
    37. void Lcd_Write_Com( uint16_t DH) //命令
    38. {
    39. LCD_RS_0;
    40. LCD_CS_0;
    41. Data=DH;
    42. LCD_RW_0;
    43. LCD_RW_1;
    44. LCD_CS_1;

    45. }
    46. /******************************************************
    47. ** 函數名:void lcd_write_color(char hh,char ll)
    48. ** 描述 :TFT寫發送圖片的高8位數據與低8位數據的顏色位
    49. ** 輸入 : 無
    50. ** 輸出 :無
    51. ** 返回 :無
    52. ******************************************************/
    53. void lcd_write_color(uint16_t hh) //發送顏色數據為提高速度高8位低8位分別傳遞
    54. {
    55. LCD_RS_1;
    56. LCD_CS_0;
    57. Data=hh;
    58. LCD_RW_0;
    59. LCD_RW_1;
    60. LCD_CS_1;

    61. }
    62. /******************************************************
    63. ** 函數名:void Lcd_Write_Data(int DH)
    64. ** 描述 :TFT寫發送圖片的高8位數據與低8位數據
    65. ** 輸入 : 無
    66. ** 輸出 :無
    67. ** 返回 :無
    68. ******************************************************/
    69. void Lcd_Write_Data(uint16_t DH) //數據
    70. {
    71. LCD_RS_1;
    72. LCD_CS_0;
    73. Data=DH;
    74. LCD_RW_0;
    75. LCD_RW_1;
    76. LCD_CS_1;

    77. }

    78. /******************************************************
    79. ** 函數名:void Lcd_Write_Com_Data( int com1,int dat1)
    80. ** 描述 :TFT寫命令數據
    81. ** 輸入 : 無
    82. ** 輸出 :無
    83. ** 返回 :無
    84. ******************************************************/
    85. void Lcd_Write_Com_Data( uint16_t com1,uint16_t dat1) //命令數據一起
    86. {
    87. Lcd_Write_Com(com1);
    88. Lcd_Write_Data(dat1);
    89. }
    90. /******************************************************
    91. ** 函數名:void Address_set(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2)
    92. ** 描述 :設置窗口顯示掃描開始地址
    93. ** 輸入 : 無
    94. ** 輸出 :無
    95. ** 返回 :無
    96. ******************************************************/
    97. void Address_set(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2)
    98. {
    99. Lcd_Write_Com_Data(0x0044,(x2<<8)+x1);
    100. Lcd_Write_Com_Data(0x0045,y1);
    101. Lcd_Write_Com_Data(0x0046,y2);
    102. Lcd_Write_Com_Data(0x004e,x1);
    103. Lcd_Write_Com_Data(0x004f,y1);
    104. Lcd_Write_Com(0x0022);

    105. }
    106. /******************************************************
    107. ** 函數名:void main_init(void)
    108. ** 描述 :TFT控制器初始化配置
    109. ** 輸入 : 無
    110. ** 輸出 :無
    111. ** 返回 :無
    112. ******************************************************/
    113. void main_init(void)
    114. {

    115. LCD_REST_1;
    116. delay_nms(5);
    117. LCD_REST_0;
    118. delay_nms(10);
    119. LCD_REST_1;
    120. LCD_CS_1;
    121. LCD_RD_1;
    122. LCD_RW_1;
    123. delay_nms(20);

    124. Lcd_Write_Com_Data(0x0000,0x0001); delay_nms(1); //打開晶振
    125. Lcd_Write_Com_Data(0x0003,0xA8A4); delay_nms(1); //0xA8A4
    126. Lcd_Write_Com_Data(0x000C,0x0000); delay_nms(1);
    127. Lcd_Write_Com_Data(0x000D,0x080C); delay_nms(1);
    128. Lcd_Write_Com_Data(0x000E,0x2B00); delay_nms(1);
    129. Lcd_Write_Com_Data(0x001E,0x00B0); delay_nms(1);
    130. Lcd_Write_Com_Data(0x0001,0x2B3F); delay_nms(1); //驅動輸出控制320*240 0x6B3F
    131. Lcd_Write_Com_Data(0x0002,0x0600); delay_nms(1);
    132. Lcd_Write_Com_Data(0x0010,0x0000); delay_nms(1);
    133. Lcd_Write_Com_Data(0x0011,0x6070); delay_nms(1); //0x4030 //定義數據格式 16位色
    134. Lcd_Write_Com_Data(0x0005,0x0000); delay_nms(1);
    135. Lcd_Write_Com_Data(0x0006,0x0000); delay_nms(1);
    136. Lcd_Write_Com_Data(0x0016,0xEF1C); delay_nms(1);
    137. Lcd_Write_Com_Data(0x0017,0x0003); delay_nms(1);
    138. Lcd_Write_Com_Data(0x0007,0x0233); delay_nms(1); //0x0233
    139. Lcd_Write_Com_Data(0x000B,0x0000); delay_nms(1);
    140. Lcd_Write_Com_Data(0x000F,0x0000); delay_nms(1); //掃描開始地址
    141. Lcd_Write_Com_Data(0x0041,0x0000); delay_nms(1);
    142. Lcd_Write_Com_Data(0x0042,0x0000); delay_nms(1);
    143. Lcd_Write_Com_Data(0x0048,0x0000); delay_nms(1);
    144. Lcd_Write_Com_Data(0x0049,0x013F); delay_nms(1);
    145. Lcd_Write_Com_Data(0x004A,0x0000); delay_nms(1);
    146. Lcd_Write_Com_Data(0x004B,0x0000); delay_nms(1);
    147. Lcd_Write_Com_Data(0x0044,0xEF00); delay_nms(1);
    148. Lcd_Write_Com_Data(0x0045,0x0000); delay_nms(1);
    149. Lcd_Write_Com_Data(0x0046,0x013F); delay_nms(1);
    150. Lcd_Write_Com_Data(0x0030,0x0707); delay_nms(1);
    151. Lcd_Write_Com_Data(0x0031,0x0204); delay_nms(1);
    152. Lcd_Write_Com_Data(0x0032,0x0204); delay_nms(1);
    153. Lcd_Write_Com_Data(0x0033,0x0502); delay_nms(1);
    154. Lcd_Write_Com_Data(0x0034,0x0507); delay_nms(1);
    155. Lcd_Write_Com_Data(0x0035,0x0204); delay_nms(1);
    156. Lcd_Write_Com_Data(0x0036,0x0204); delay_nms(1);
    157. Lcd_Write_Com_Data(0x0037,0x0502); delay_nms(1);
    158. Lcd_Write_Com_Data(0x003A,0x0302); delay_nms(1);
    159. Lcd_Write_Com_Data(0x003B,0x0302); delay_nms(1);
    160. Lcd_Write_Com_Data(0x0023,0x0000); delay_nms(1);
    161. Lcd_Write_Com_Data(0x0024,0x0000); delay_nms(1);
    162. Lcd_Write_Com_Data(0x0025,0x8000); delay_nms(1);
    163. Lcd_Write_Com_Data(0x004f,0); //行首址0
    164. Lcd_Write_Com_Data(0x004e,0); //列首址0
    165. Lcd_Write_Com(0x0022);
    166. }
    167. /******************************************************
    168. ** 函數名:void Pant(unsigned int color)
    169. ** 描述 :TFT初始化清屏顯示
    170. ** 輸入 : 無
    171. ** 輸出 :無
    172. ** 返回 :無
    173. ******************************************************/
    174. void Pant(unsigned int color)
    175. {
    176. int i,j;
    177. Address_set(0,0,239,319);

    178. for(i=0;i<320;i++)
    179. {
    180. for (j=0;j<240;j++)
    181. {
    182. Lcd_Write_Data(color);
    183. }

    184. }
    185. }

    186. int main()
    187. {
    188. int i;
    189. uint16_t data=0;
    190. SystemInit();
    191. RCC_Configuration();
    192. GPIO_Configuration();
    193. main_init(); //tft初始化



    194. //Pant(0xf800); //紅色
    195. //Pant(0X07E0); //綠色
    196. //Pant(0x001f); //藍色
    197. Pant(0xffff); //清屏

    198. delay_nms(10);

    199. Address_set(0,0,239,319); //設置圖片掃描的起始位置
    200. for(i=0;i<76800;i++)
    201. {
    202. data=image1[i*2];
    203. data=data<<8;
    204. data=data+image1[i*2+1];
    205. //delay_nms(10);
    206. lcd_write_color(data); //數據的高8位與低8位分別傳送
    207. // delay_nms(1);
    208. }
    209. /*
    210. for(k=0;k<8;k++)
    211. {
    212. for(j=0;j<6;j++)
    213. {
    214. Address_set(40*j,40*k,40*j+39,40*k+39); //坐標設置
    215. for(i=0;i<1600;i++)
    216. {
    217. lcd_write_color(image[i*2+1],image[i*2]); //發送顏色數據為提高速度高8位低8位分別傳遞
    218. }
    219. }
    220. }
    221. */
    222. while(1);
    223. }
    224. /******************************************************
    225. ** 函數名:void RCC_Configuration()
    226. ** 描述 :us延時函數
    227. ** 輸入 : 無
    228. ** 輸出 :無
    229. ** 返回 :無
    230. ******************************************************/
    231. void RCC_Configuration()
    232. {
    233. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG,ENABLE);
    234. //RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
    235. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
    236. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF,ENABLE);
    237. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);
    238. }
    239. /******************************************************
    240. ** 函數名:void GPIO_Configuration()
    241. ** 描述 :GPIO端口初始化
    242. ** 輸入 : 無
    243. ** 輸出 :無
    244. ** 返回 :無
    245. ******************************************************/
    246. void GPIO_Configuration()
    247. {
    248. GPIO_InitTypeDef GPIO_InitStructure;
    249. GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;
    250. GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
    251. GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
    252. GPIO_Init(GPIOF,&GPIO_InitStructure);

    253. GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
    254. GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
    255. GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
    256. GPIO_Init(GPIOG,&GPIO_InitStructure);

    257. GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1;
    258. GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
    259. GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
    260. GPIO_Init(GPIOB,&GPIO_InitStructure);

    261. GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;
    262. GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
    263. GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
    264. GPIO_Init(GPIOE,&GPIO_InitStructure);
    265. }

    266. /******************************************************
    267. ** 函數名:void delay_nus(unsigned long n)
    268. ** 描述 :us延時函數
    269. ** 輸入 : 無
    270. ** 輸出 :無
    271. ** 返回 :無
    272. ******************************************************/
    273. void delay_nus(unsigned long n)
    274. {
    275. unsigned long j;
    276. while(n--)
    277. {
    278. j=8;
    279. while(j--);
    280. }
    281. }
    282. /******************************************************
    283. ** 函數名:void delay_nms(unsigned long n)
    284. ** 描述 :ms延時函數
    285. ** 輸入 : 無
    286. ** 輸出 :無
    287. ** 返回 :無
    288. ******************************************************/
    289. void delay_nms(unsigned long count) // /* X1ms */
    290. {
    291. int i,j;
    292. for(i=0;i
    293. for(j=0;j<100;j++);
    294. }

    復制代碼
    沙發
    發表于 2012-4-17 16:14:33 | 只看該作者
    謝分享。。。。。。。。。。。。。
    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規則

    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷