資源簡介
STM32 OV2640 ESP8266圖像傳輸
int main()
{
u16 temp;
u8 *p;
u32 i,k;
u32 count,spi_send_len;
delay_init(168);
uart_init(115200);
printf("usart init.\r\n");
OV2640_Init();
DCMI_Config();
user_SPI_Config();
SPI1_SetSpeed(21);
printf("ov2640 init\r\n");
OV2640_JPEG_Mode();
OV2640_OutSize_Set(1600,1200);
DCMI_DMA_Init((u32)&frame;_data,JPEG_BUFF_LEN,DMA_MemoryDataSize_Word,DMA_MemoryInc_Enable);
DMA_Cmd(DMA2_Stream1,ENABLE);
DCMI_CaptureCmd(ENABLE);
printf("init success.\r\n");
delay_ms(1000);
GPIO_SetBits(GPIOB,GPIO_Pin_12);
while(1)
{
if(jpeg_ok==1)
{
printf("send...\r\n");
count=0;
wr_rdy=1;
p = (u8*)frame_data;
spi_send_len = jpeg_len/8; //byte-->word
spi_send_len+=1;
FRAME_START();//開始傳輸信號(hào)
for(k=0;k<spi_send_len;) //發(fā)送
{
if(wr_rdy == 1) //禁止傳輸
{
wr_rdy=0; //注意:必須及時(shí)清0,放在其后清0會(huì)導(dǎo)致EXTI中斷置位后再次被復(fù)位
SPI_NSS_ENABLE();
UserEspSPISendbyte(0x02); //寫指令
UserEspSPISendbyte(0x00); //寫地址
for(i=0;iSR&0X40;)==0);
//USART2->DR = (u8)p[count];
count++;
}
k++;
SPI_NSS_DISABLE();
}
else //*可以添加傳輸失敗的超時(shí)處理
{
}
}
delay_ms(1); //這里必須有延時(shí),否則ESP8266 GPIO中斷比SPI中斷先到,導(dǎo)致接收不到最后幾個(gè)字節(jié)
FRAME_END();
printf("count:%d.\r\n",count);
count= 0;
delay_ms(2); //稍作延時(shí),更加穩(wěn)定的傳輸
jpeg_ok = 2;
}
}
}
代碼片段和文件信息
/*
?*?ESPRESSIF?MIT?License
?*
?*?Copyright?(c)?2016?
?*
?*?Permission?is?hereby?granted?for?use?on?ESPRESSIF?SYSTEMS?ESP8266?only?in?which?case
?*?it?is?free?of?charge?to?any?person?obtaining?a?copy?of?this?software?and?associated
?*?documentation?files?(the?“Software“)?to?deal?in?the?Software?without?restriction?including
?*?without?limitation?the?rights?to?use?copy?modify?merge?publish?distribute?sublicense
?*?and/or?sell?copies?of?the?Software?and?to?permit?persons?to?whom?the?Software?is?furnished
?*?to?do?so?subject?to?the?following?conditions:
?*
?*?The?above?copyright?notice?and?this?permission?notice?shall?be?included?in?all?copies?or
?*?substantial?portions?of?the?Software.
?*
?*?THE?SOFTWARE?IS?PROVIDED?“AS?IS“?WITHOUT?WARRANTY?OF?ANY?KIND?EXPRESS?OR
?*?IMPLIED?INCLUDING?BUT?NOT?LIMITED?TO?THE?WARRANTIES?OF?MERCHANTABILITY?FITNESS
?*?FOR?A?PARTICULAR?PURPOSE?AND?NONINFRINGEMENT.?IN?NO?EVENT?SHALL?THE?AUTHORS?OR
?*?COPYRIGHT?HOLDERS?BE?LIABLE?FOR?ANY?CLAIM?DAMAGES?OR?OTHER?LIABILITY?WHETHER
?*?IN?AN?ACTION?OF?CONTRACT?TORT?OR?OTHERWISE?ARISING?FROM?OUT?OF?OR?IN
?*?CONNECTION?WITH?THE?SOFTWARE?OR?THE?USE?OR?OTHER?DEALINGS?IN?THE?SOFTWARE.
?*
?*/
#include?“ets_sys.h“
#include?“osapi.h“
#include?“driver/gpio16.h“
void?ICACHE_FLASH_ATTR
gpio16_output_conf(void)
{
????WRITE_PERI_REG(PAD_XPD_DCDC_CONF
???????????????????(READ_PERI_REG(PAD_XPD_DCDC_CONF)?&?0xffffffbc)?|?(uint32)0x1);? //?mux?configuration?for?XPD_DCDC?to?output?rtc_gpio0
????WRITE_PERI_REG(RTC_GPIO_CONF
???????????????????(READ_PERI_REG(RTC_GPIO_CONF)?&?(uint32)0xfffffffe)?|?(uint32)0x0); //mux?configuration?for?out?enable
????WRITE_PERI_REG(RTC_GPIO_ENABLE
???????????????????(READ_PERI_REG(RTC_GPIO_ENABLE)?&?(uint32)0xfffffffe)?|?(uint32)0x1); //out?enable
}
void?ICACHE_FLASH_ATTR
gpio16_output_set(uint8?value)
{
????WRITE_PERI_REG(RTC_GPIO_OUT
???????????????????(READ_PERI_REG(RTC_GPIO_OUT)?&?(uint32)0xfffffffe)?|?(uint32)(value?&?1));
}
void?ICACHE_FLASH_ATTR
gpio16_input_conf(void)
{
????WRITE_PERI_REG(PAD_XPD_DCDC_CONF
???????????????????(READ_PERI_REG(PAD_XPD_DCDC_CONF)?&?0xffffffbc)?|?(uint32)0x1);? //?mux?configuration?for?XPD_DCDC?and?rtc_gpio0?connection
????WRITE_PERI_REG(RTC_GPIO_CONF
???????????????????(READ_PERI_REG(RTC_GPIO_CONF)?&?(uint32)0xfffffffe)?|?(uint32)0x0); //mux?configuration?for?out?enable
????WRITE_PERI_REG(RTC_GPIO_ENABLE
???????????????????READ_PERI_REG(RTC_GPIO_ENABLE)?&?(uint32)0xfffffffe); //out?disable
}
uint8?ICACHE_FLASH_ATTR
gpio16_input_get(void)
{
????return?(uint8)(READ_PERI_REG(RTC_GPIO_IN_DATA)?&?1);
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-04-16?10:03??ESP8266\
?????文件????????3696??2019-01-13?15:46??ESP8266\.cproject
?????文件?????????837??2019-01-13?15:46??ESP8266\.project
?????目錄???????????0??2019-04-16?10:30??ESP8266\.settings\
?????文件????????1824??2018-06-08?16:20??ESP8266\License
?????文件???????10160??2018-05-29?14:02??ESP8266\Makefile
?????文件?????????123??2018-06-08?16:20??ESP8266\README.md
?????文件?????????496??2018-06-08?16:20??ESP8266\VERSION
?????目錄???????????0??2019-04-16?10:03??ESP8266\app\
?????目錄???????????0??2019-04-16?10:03??ESP8266\app\.output\
?????目錄???????????0??2019-04-16?10:03??ESP8266\app\.output\eagle\
?????目錄???????????0??2019-04-16?10:03??ESP8266\app\.output\eagle\debug\
?????目錄???????????0??2019-04-16?10:30??ESP8266\app\.output\eagle\debug\bin\
?????目錄???????????0??2019-04-16?10:03??ESP8266\app\.output\eagle\debug\image\
?????文件??????528756??2019-01-16?19:23??ESP8266\app\.output\eagle\debug\image\eagle.app.v6.out
?????文件????????2913??2019-01-13?17:30??ESP8266\app\Makefile
?????目錄???????????0??2019-04-16?10:03??ESP8266\app\driver\
?????目錄???????????0??2019-04-16?10:03??ESP8266\app\driver\.output\
?????目錄???????????0??2019-04-16?10:03??ESP8266\app\driver\.output\eagle\
?????目錄???????????0??2019-04-16?10:03??ESP8266\app\driver\.output\eagle\debug\
?????目錄???????????0??2019-04-16?10:03??ESP8266\app\driver\.output\eagle\debug\lib\
?????文件??????200320??2019-01-16?19:23??ESP8266\app\driver\.output\eagle\debug\lib\libdriver.a
?????目錄???????????0??2019-04-16?10:03??ESP8266\app\driver\.output\eagle\debug\obj\
?????文件????????1660??2019-01-16?19:23??ESP8266\app\driver\.output\eagle\debug\obj\gpio16.d
?????文件????????5152??2019-01-16?19:23??ESP8266\app\driver\.output\eagle\debug\obj\gpio16.o
?????文件????????1660??2019-01-16?19:23??ESP8266\app\driver\.output\eagle\debug\obj\hw_timer.d
?????文件????????9348??2019-01-16?19:23??ESP8266\app\driver\.output\eagle\debug\obj\hw_timer.o
?????文件????????1697??2019-01-16?19:23??ESP8266\app\driver\.output\eagle\debug\obj\i2c_master.d
?????文件???????19976??2019-01-16?19:23??ESP8266\app\driver\.output\eagle\debug\obj\i2c_master.o
?????文件????????1843??2019-01-16?19:23??ESP8266\app\driver\.output\eagle\debug\obj\key.d
?????文件???????14756??2019-01-16?19:23??ESP8266\app\driver\.output\eagle\debug\obj\key.o
............此處省略472個(gè)文件信息
評(píng)論
共有 條評(píng)論