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.rn");
OV2640_Init();
DCMI_Config();
user_SPI_Config();
SPI1_SetSpeed(21);
printf("ov2640 initrn");
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.rn");
delay_ms(1000);
GPIO_SetBits(GPIOB,GPIO_Pin_12);
while(1)
{
if(jpeg_ok==1)
{
printf("send...rn");
count=0;
wr_rdy=1;
p = (u8*)frame_data;
spi_send_len = jpeg_len/8; //byte-->word
spi_send_len+=1;
FRAME_START();//开始传输信号
for(k=0;k<spi_send_len;) //发送
{
if(wr_rdy == 1) //禁止传输
{
wr_rdy=0; //注意:必须及时清0,放在其后清0会导致EXTI中断置位后再次被复位
SPI_NSS_ENABLE();
UserEspSPISendbyte(0x02); //写指令
UserEspSPISendbyte(0x00); //写地址
for(i=0;iSR&0X40;)==0);
//USART2->DR = (u8)p[count];
count++;
}
k++;
SPI_NSS_DISABLE();
}
else //*可以添加传输失败的超时处理
{
}
}
delay_ms(1); //这里必须有延时,否则ESP8266 GPIO中断比SPI中断先到,导致接收不到最后几个字节
FRAME_END();
printf("count:%d.rn",count);
count= 0;
delay_ms(2); //稍作延时,更加稳定的传输
jpeg_ok = 2;
}
}
}
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 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 ESP8266License
文件 10160 2018-05-29 14:02 ESP8266Makefile
文件 123 2018-06-08 16:20 ESP8266README.md
文件 496 2018-06-08 16:20 ESP8266VERSION
目录 0 2019-04-16 10:03 ESP8266app
目录 0 2019-04-16 10:03 ESP8266app.output
目录 0 2019-04-16 10:03 ESP8266app.outputeagle
目录 0 2019-04-16 10:03 ESP8266app.outputeagledebug
目录 0 2019-04-16 10:30 ESP8266app.outputeagledebugin
目录 0 2019-04-16 10:03 ESP8266app.outputeagledebugimage
文件 528756 2019-01-16 19:23 ESP8266app.outputeagledebugimageeagle.app.v6.out
文件 2913 2019-01-13 17:30 ESP8266appMakefile
目录 0 2019-04-16 10:03 ESP8266appdriver
目录 0 2019-04-16 10:03 ESP8266appdriver.output
目录 0 2019-04-16 10:03 ESP8266appdriver.outputeagle
目录 0 2019-04-16 10:03 ESP8266appdriver.outputeagledebug
目录 0 2019-04-16 10:03 ESP8266appdriver.outputeagledebuglib
文件 200320 2019-01-16 19:23 ESP8266appdriver.outputeagledebugliblibdriver.a
目录 0 2019-04-16 10:03 ESP8266appdriver.outputeagledebugobj
文件 1660 2019-01-16 19:23 ESP8266appdriver.outputeagledebugobjgpio16.d
文件 5152 2019-01-16 19:23 ESP8266appdriver.outputeagledebugobjgpio16.o
文件 1660 2019-01-16 19:23 ESP8266appdriver.outputeagledebugobjhw_timer.d
文件 9348 2019-01-16 19:23 ESP8266appdriver.outputeagledebugobjhw_timer.o
文件 1697 2019-01-16 19:23 ESP8266appdriver.outputeagledebugobji2c_master.d
文件 19976 2019-01-16 19:23 ESP8266appdriver.outputeagledebugobji2c_master.o
文件 1843 2019-01-16 19:23 ESP8266appdriver.outputeagledebugobjkey.d
文件 14756 2019-01-16 19:23 ESP8266appdriver.outputeagledebugobjkey.o
............此处省略472个文件信息
/*
* 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);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 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 ESP8266License
文件 10160 2018-05-29 14:02 ESP8266Makefile
文件 123 2018-06-08 16:20 ESP8266README.md
文件 496 2018-06-08 16:20 ESP8266VERSION
目录 0 2019-04-16 10:03 ESP8266app
目录 0 2019-04-16 10:03 ESP8266app.output
目录 0 2019-04-16 10:03 ESP8266app.outputeagle
目录 0 2019-04-16 10:03 ESP8266app.outputeagledebug
目录 0 2019-04-16 10:30 ESP8266app.outputeagledebugin
目录 0 2019-04-16 10:03 ESP8266app.outputeagledebugimage
文件 528756 2019-01-16 19:23 ESP8266app.outputeagledebugimageeagle.app.v6.out
文件 2913 2019-01-13 17:30 ESP8266appMakefile
目录 0 2019-04-16 10:03 ESP8266appdriver
目录 0 2019-04-16 10:03 ESP8266appdriver.output
目录 0 2019-04-16 10:03 ESP8266appdriver.outputeagle
目录 0 2019-04-16 10:03 ESP8266appdriver.outputeagledebug
目录 0 2019-04-16 10:03 ESP8266appdriver.outputeagledebuglib
文件 200320 2019-01-16 19:23 ESP8266appdriver.outputeagledebugliblibdriver.a
目录 0 2019-04-16 10:03 ESP8266appdriver.outputeagledebugobj
文件 1660 2019-01-16 19:23 ESP8266appdriver.outputeagledebugobjgpio16.d
文件 5152 2019-01-16 19:23 ESP8266appdriver.outputeagledebugobjgpio16.o
文件 1660 2019-01-16 19:23 ESP8266appdriver.outputeagledebugobjhw_timer.d
文件 9348 2019-01-16 19:23 ESP8266appdriver.outputeagledebugobjhw_timer.o
文件 1697 2019-01-16 19:23 ESP8266appdriver.outputeagledebugobji2c_master.d
文件 19976 2019-01-16 19:23 ESP8266appdriver.outputeagledebugobji2c_master.o
文件 1843 2019-01-16 19:23 ESP8266appdriver.outputeagledebugobjkey.d
文件 14756 2019-01-16 19:23 ESP8266appdriver.outputeagledebugobjkey.o
............此处省略472个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)