当前位置: 首页 > news >正文

做网站什么系统好蓝莓直播视频

做网站什么系统好,蓝莓直播视频,一起做网店网站官方,自己做网站卖衣服目录 概述 1 软硬件介绍 1.1 软件版本信息 1.2 ST7796-LCD 1.3 MCU IO与LCD PIN对应关系 2 FSP配置项目 2.1 配置项目参数 2.2 生成项目框架 3 代码实现 3.1 SPI的库函数 3.1.1 R_SCI_SPI_Open() 3.1.2 R_SCI_SPI_Read() 3.1.3 R_SCI_SPI_Write() 3.2 应用函数…目录 概述 1 软硬件介绍 1.1 软件版本信息 1.2 ST7796-LCD 1.3 MCU IO与LCD PIN对应关系 2 FSP配置项目 2.1 配置项目参数 2.2 生成项目框架 3 代码实现  3.1 SPI的库函数 3.1.1 R_SCI_SPI_Open() 3.1.2  R_SCI_SPI_Read() 3.1.3  R_SCI_SPI_Write() 3.2 应用函数接口 3.2.1 SPI初始化函数 3.2.2  读数据接口 3.2.3 写数据接口 3.2.4 回调函数 3.2.5 SPI应用程序源代码  3.3 LCD驱动程序实现 3.3.1 驱动代码 3.3.2 测试代码实现 4 测试结果 概述 本文主要介绍使用Renesas MCU之SPI读写数据功能包括硬件资源介绍,FSP配置项目的方法还介绍了SCI_SPI的接口函数笔者使用一款SPI接口类型的LCD作为Device使用SCI_SPI接口驱动该LCD,还编写测试函数验证其功能。 1 软硬件介绍 1.1 软件版本信息 软硬件信息版本信息Renesas MCUR7FA4M2AD3CKeilMDK ARM 5.38FSP 版本5.3.0调试工具st-linkST-LINK/V2-1 注意 在Keil MDK中可以更改FSP的版本方法如下 1.2 ST7796-LCD LCD的PIN引脚功能介绍 序号模块引脚引脚说明1VCC屏电源正2GND屏电源地3LCD_CS液晶屏片选控制信号低电平有效4LCD_RST液晶屏复位控制信号低电平复位5LCD_RS液晶屏命令/数据选择控制信号 高电平数据低电平命令 6SDI(MOSI)SPI总线写数据信号SD卡和液晶屏共用7SCKSPI总线时钟信号SD卡和液晶屏共用8LED液晶屏背光控制信号如需要控制请接引脚如不需要控制可以不接9SDO(MISO)SPI总线读数据信号SD卡和液晶屏共用10CTP_SCL电容触摸屏IIC总线时钟信号无触摸屏的模块不需连接11CTP_RST电容触摸屏复位控制信号低电平复位无触摸屏的模块不需连接12CTP_SDA电容触摸屏IIC总线数据信号无触摸屏的模块不需连接13CTP_INT电容触摸屏IIC总线触摸中断信号产生触摸时输入低电平到主控无触摸屏的模块不需连接14SD_CSSD卡片选控制信号低电平有效不使用SD卡功能可不接 实体LCD Port对应关系如下图所示 1.3 MCU IO与LCD PIN对应关系 RA4M2 PIN引脚LCD PIN引脚BSP_IO_PORT_01_PIN_01MOSIBSP_IO_PORT_01_PIN_00MISOBSP_IO_PORT_01_PIN_02SCKBSP_IO_PORT_01_PIN_05CSBSP_IO_PORT_01_PIN_06RSTBSP_IO_PORT_01_PIN_03RS 2 FSP配置项目 2.1 配置项目参数 1配置系统工作时钟笔者的开发板使用的外部晶振为12M Hz 2) 在Pins面板上使能SCI0配置选择IO口如下 3在stack面板上创建SPI模块 4配置SPI的相关参数 2.2 生成项目框架 完成参数配置之后就可以生成项目框架点击Generate project就可以生成项目代码使用Keil打开项目其结构如下 3 代码实现  3.1 SPI的库函数 3.1.1 R_SCI_SPI_Open() 函数原型 fsp_err_t R_SCI_SPI_Open( spi_ctrl_t * p_api_ctrl,spi_cfg_t const *const p_cfg ) 函数功能 初始化SPI通信模式 该函数的主要任务如下: 1执行参数检查和处理错误条件。 2开启SCI通道时钟。 3使用默认值和用户可配置选项初始化相关的寄存器。 4提供与其他API函数一起使用的通道句柄。 参数介绍 p_api_ctrlPointer to the control structure.p_cfg Pointer to a configuration structure. 返回值 FSP_SUCCESSChannel initialized successfully.FSP_ERR_ASSERTIONAn input parameter is invalid or NULL.FSP_ERR_ALREADY_OPENThe instance has already been opened.FSP_ERR_IP_CHANNEL_NOT_PRESENTThe channel number is invalid. 3.1.2  R_SCI_SPI_Read() 函数原型 fsp_err_t R_SCI_SPI_Read ( spi_ctrl_t *const p_api_ctrl,void * p_dest,uint32_t const length,spi_bit_width_t const bit_width ) 函数功能从SPI设备接收数据。 该函数的主要任务如下: 1执行参数检查和处理错误条件。 2使发射机。 3使接收机。 4启用中断。 5通过向TXD寄存器写入数据来启动数据传输。 6从接收缓冲区接收数据发生完全中断并将数据复制到目标缓冲区。 7通过接收缓冲区完全中断和发送虚拟数据完成数据接收。 8禁用发射机。 9禁用接收机。 10禁用中断。 参数介绍 p_api_ctrlPointer to the control structure.p_destPointer to the destination buffer.lengthThe number of bytes to transfer.bit_widthInvalid for SCI_SPI (Set to SPI_BIT_WIDTH_8_BITS). 返回值介绍  FSP_SUCCESSRead operation successfully completed.FSP_ERR_ASSERTIONOne of the following invalid parameters passed: Pointer p_api_ctrl is NULLBit width is not 8 bitsLength is equal to 0Pointer to destination is NULLFSP_ERR_NOT_OPENThe channel has not been opened. Open the channel first.FSP_ERR_UNSUPPORTEDThe given bit_width is not supported.FSP_ERR_IN_USEA transfer is already in progress. 3.1.3  R_SCI_SPI_Write() 函数原型 fsp_err_t R_SCI_SPI_Write ( spi_ctrl_t *const p_api_ctrl,void const * p_src,uint32_t const length,spi_bit_width_t const bit_width ) 函数功能将数据传输到SPI设备 该函数的主要任务如下: 1执行参数检查和处理错误条件。 2使发射机。 3启用中断。 4开始数据传输与数据通过传输缓冲区空中断。 5从源缓冲区复制数据到SPI数据寄存器进行传输。 6通过传输缓冲区空中断完成数据传输。 7禁用发射机。 8禁用接收机。 9禁用中断。 参数介绍 p_api_ctrlPointer to the control structure.p_srcPointer to the source buffer.lengthThe number of bytes to transfer.bit_widthInvalid for SCI_SPI (Set to SPI_BIT_WIDTH_8_BITS). 返回值 FSP_SUCCESSWrite operation successfully completed.FSP_ERR_ASSERTIONOne of the following invalid parameters passed: Pointer p_api_ctrl is NULLPointer to source is NULLLength is equal to 0Bit width is not equal to 8 bitsFSP_ERR_NOT_OPENThe channel has not been opened. Open the channel first.FSP_ERR_UNSUPPORTEDThe given bit_width is not supported.FSP_ERR_IN_USEA transfer is already in progress. 3.2 应用函数接口 3.2.1 SPI初始化函数 代码第25行调用R_SCI_SPI_Open函数初始化SPI接口 3.2.2  读数据接口 代码第48行调用R_SCI_SPI_Read接口读取数据 代码第50行等待数据读取完成 3.2.3 写数据接口 代码第37行调用R_SCI_SPI_Write接口写数据 代码第39行等待写数据完成 3.2.4 回调函数 代码第14行检测传输数据事件 代码第15行数据传输完成传输数据控制字置位 3.2.5 SPI应用程序源代码  /*FILE NAME : bsp_spi.cDescription: generate pwm by timerAuthor : tangmingfei2013126.comDate : 2024/06/03*/#include bsp_spi.h #include hal_data.hstatic volatile bool g_transfer_complete false; void g_spi0_callback (spi_callback_args_t * p_args) {if (SPI_EVENT_TRANSFER_COMPLETE p_args-event){g_transfer_complete true;} }void sci_spi_basic_init (void) {fsp_err_t err FSP_SUCCESS;/* Initialize the SPI module. */err R_SCI_SPI_Open(g_spi0_ctrl, g_spi0_cfg);/* Handle any errors. This function should be defined by the user. */assert(FSP_SUCCESS err); }void hal_spi_writebyte( uint8_t byte ) {fsp_err_t err FSP_SUCCESS;uint8_t buff[1];g_transfer_complete false;buff[0] byte;err R_SCI_SPI_Write(g_spi0_ctrl, buff, 1, SPI_BIT_WIDTH_8_BITS);assert(FSP_SUCCESS err);while (false g_transfer_complete); }uint8_t hal_spi_readbyte(void) {fsp_err_t err FSP_SUCCESS;uint8_t buff[1];g_transfer_complete false;err R_SCI_SPI_Read( g_spi0_ctrl, buff, 1, SPI_BIT_WIDTH_8_BITS);assert(FSP_SUCCESS err);while (false g_transfer_complete);return buff[0]; }/* End of this file */ 3.3 LCD驱动程序实现 3.3.1 驱动代码 LCD的驱动代码在改文章中已经实现 使用SPI驱动串行LCD的驱动实现(STM32F4)_spilcd-CSDN博客 这里只需修改SPI相关的接口即可和LCD相关的代码不需要修改直接引用。 修改和MCU相关的底代码 1SPI接口代码。这里需要编写读写数据函数其函数原型如下 源代码 void SPI_WriteByte(uint8_t byte) {hal_spi_writebyte(byte); } uint8_t SPI_ReadByte(void) {return hal_spi_readbyte(); } 2其他IO库配置 源代码 #include stdlib.h #include stdio.h #include bsp_spi.h #include hal_data.h#define LCD_CS_CLR R_IOPORT_PinWrite(g_ioport_ctrl, BSP_IO_PORT_01_PIN_05, BSP_IO_LEVEL_LOW) #define LCD_CS_SET R_IOPORT_PinWrite(g_ioport_ctrl, BSP_IO_PORT_01_PIN_05, BSP_IO_LEVEL_HIGH)#define LCD_RST_CLR R_IOPORT_PinWrite(g_ioport_ctrl, BSP_IO_PORT_01_PIN_06, BSP_IO_LEVEL_LOW) #define LCD_RST_SET R_IOPORT_PinWrite(g_ioport_ctrl, BSP_IO_PORT_01_PIN_06, BSP_IO_LEVEL_HIGH)#define LCD_RS_CLR R_IOPORT_PinWrite(g_ioport_ctrl, BSP_IO_PORT_01_PIN_03, BSP_IO_LEVEL_LOW) #define LCD_RS_SET R_IOPORT_PinWrite(g_ioport_ctrl, BSP_IO_PORT_01_PIN_03, BSP_IO_LEVEL_HIGH) 3.3.2 测试代码实现 代码第341行初始化SPI接口 代码第343行初始化LCD 源代码 void disp_init(void) {sci_spi_basic_init();/*You code here*/LCD_Init();LCD_direction(0);LCD_Clear(GREEN); } 编写一个改变屏幕颜色变化的测试函数 void lcd_test( void ) {uint16_t color_list[6] {BRRED, BLUE, MAGENTA, RED, YELLOW, GREEN};static int index 0;LCD_Clear( color_list[index] );index;R_BSP_SoftwareDelay( 1, BSP_DELAY_UNITS_SECONDS);if( index 6 )index 0; } 4 测试结果 1改变屏幕的颜色粉色 2改变屏幕的颜色蓝色
http://www.zqtcl.cn/news/647518/

相关文章:

  • 互联网公司网站建设价格跨境支付互联互通
  • 杭州 高端网站 开发宜昌建设网站公司
  • 咋样做网站快照济南建设质量协会网站
  • 学校网站怎么建设兄弟网络(西安网站建设制作公司)
  • 长春市城乡建设局网站photoshop破解版下载免费中文版
  • 吕梁网站设计天津高端网页制作
  • 建一个网站做cpa联盟做淘客的网站都有哪几个
  • 中国建设银行网站对公业务wordpress 文章归档页面
  • 东软 网站群平台建设用个人电脑做网站服务器
  • 音乐播放网站开发pc端营销网站的关键字
  • 江门网站推广宿州官方网站建设
  • 企业网站建设策划书范文江苏高端网站建设
  • 网站开发 浏览器济宁网站建设服务
  • 整套网站建设网站开发中如何实现gps定位
  • 网站建设计划表福州自助建站
  • 网站做的比较好的公司吗2017年做网站多少钱
  • 基础展示营销型型网站重庆百度总代理
  • 网站建设 技术可行性这是我自己做的网站
  • 西安网站策划关键词优化哪家好
  • 能看建设动漫黄图的网站海外仓一件代发平台
  • 做网站都需要了解什么大连福佳新城2026年建站吗
  • php 网站部署到服务器泉州模板建站哪家好
  • 网站服务器上的跳转选择怎么做网站是怎么建立的
  • 网站后台目录如何保护公司网站建设需要要求什么软件
  • 四川省建设厅网站官网自己做的网站能上传到凡科吗
  • 米拓网站建设-app定制开发免费个人建站系统
  • 网站改版公司如何帮公司做网站
  • 曹县汽车网站建设网站怎么做才 吸引人
  • 河南周口东宇网站建设wordpress怎么重新安装插件
  • wordpress无法上传主题南通做网站优化公司