STM32 OV2640 ESP8266图像传输


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&#40;DMA2_Stream1,ENABLE&#41;; DCMI_CaptureCmd&#40;ENABLE&#41;; 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--&gt;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; } } }
资源截图
代码片段和文件信息
/*
 * 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个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)