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

曲靖手机网站建设费用wordpress缺少临时文件夹.

曲靖手机网站建设费用,wordpress缺少临时文件夹.,室内设计培训机构多少钱,广州有什么好玩的景点最近需要用华大的hc32l136的硬件SPIDMA传输,瞎写很久没调好,看参考手册,瞎碰一天搞通了。。。 先说下我之前犯的错误,也是最宝贵的经验,供参考 没多看参考手册直接写(即使有点烂仍然提供了最高的参考价值。…
  • 最近需要用华大的hc32l136的硬件SPI+DMA传输,瞎写很久没调好,看参考手册,瞎碰一天搞通了。。。
    • 先说下我之前犯的错误,也是最宝贵的经验,供参考
      • 没多看参考手册直接写(即使有点烂仍然提供了最高的参考价值。。。),重点看SPIDMAC章节
      • 错误使用了软件触发传输,测到的现象是前两个字节可以正确发送,后面的无论是发送数量和数据都对不上了,误以为软件触发可用,自己的配置有问题,实际测试软件触发和规格书讲的一样,是不可用的或者说是不可靠的
    • 再说下正确的使用方式,文末会粘上测试代码
      • 关键点就一个,触发方式不要选DmaSWTrig软件触发(至于最后实例能用的这个,从软件的角度看还是软件触发,但官方的角度似乎不认为这是软件触发,或许是软件触发SPI硬件再触发DMA所以叫硬件触发?不管也罢,,,)
  • 语文课兴许没及格,下面是参考手册的一些相关描述,没看明白:
  1. 先讲SPI支持软硬件访问
    在这里插入图片描述
    2.再讲只支持硬件块传输模式,且SPI和系统时钟不同频时不支持硬件触发(官方对软件/硬件触发的解释不是很到位,至少和我理解的不太一样)
    在这里插入图片描述
  2. 但是spi时钟和系统时钟必然是不同频的,那硬件触发到底能不能用呢?
    在这里插入图片描述
  3. 再看,所谓的软件/硬件DMA传输模式就是软件/硬件请求方式不同,似乎哪个也不支持了。。。软硬件触发和软硬件传输似乎没有关系?
    在这里插入图片描述
  • 最后,还是实践出真知。。。
  • 测试程序参考,每200ms用SPI+DMA发送24个字节:
#define SPI_HANDLE M0P_SPI1
#define DMA_HANDLE DmaCh1uint8_t data_tx_test[24] =
{0x11,0x22,0x23,0x44,0x55,0x66,0x77,0x88,0x11,0x22,0x23,0x44,0x55,0x66,0x77,0x88,0x11,0x22,0x23,0x44,0x55,0x66,0x77,0x88,
};//主要是CS/CLK/MOSI三个脚,不相干引脚忽略即可
static void App_GpioInit(void)		
{stc_gpio_cfg_t           stcPortCfg;DDL_ZERO_STRUCT(stcPortCfg);							//结构体初始化清零Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE); //GPIO 外设时钟使能stcPortCfg.enDrv = GpioDrvH;stcPortCfg.enDir  = GpioDirOut;Gpio_Init(LCD_BK_PORT, LCD_BK_PIN, &stcPortCfg);  Gpio_Init(LCD_CS_PORT, LCD_CS_PIN, &stcPortCfg);  Gpio_SetAfMode(LCD_CS_PORT, LCD_CS_PIN,GpioAf1); 				//CSGpio_Init(LCD_RESET_PORT, LCD_RESET_PIN, &stcPortCfg);  Gpio_Init(LCD_WR_PORT, LCD_WR_PIN, &stcPortCfg);  Gpio_Init(LCD_SCK_PORT, LCD_SCK_PIN, &stcPortCfg);  Gpio_SetAfMode(LCD_SCK_PORT, LCD_SCK_PIN,GpioAf1);  			//CLKGpio_Init(LCD_SDA_PORT, LCD_SDA_PIN, &stcPortCfg);  Gpio_SetAfMode(LCD_SDA_PORT, LCD_SDA_PIN,GpioAf1);  			//MOSI	
}static void App_SPIInit(void)
{stc_spi_cfg_t  SpiInitStruct;Sysctrl_SetPeripheralGate(SysctrlPeripheralSpi1,TRUE);//SPI0模块配置:主机SpiInitStruct.enSpiMode = SpiMskMaster;   		//配置位主机模式SpiInitStruct.enPclkDiv = SpiClkMskDiv2;  		//波特率:fsys/2SpiInitStruct.enCPOL    = SpiMskcpolhigh;  		//极性SpiInitStruct.enCPHA 	= SpiMskCphasecond; 	//第二电平采样Spi_Init(SPI_HANDLE, &SpiInitStruct);Spi_FuncEnable(SPI_HANDLE,SpiMskDmaTxEn);		//这里只使用了发送功能
}static void App_DmaCfg(void)
{ stc_dma_cfg_t stcDmaCfg;Sysctrl_SetPeripheralGate(SysctrlPeripheralDma,TRUE); 			//打开DMA时钟DDL_ZERO_STRUCT(stcDmaCfg);stcDmaCfg.enMode =  DmaMskBlock;                           		//选择块传输stcDmaCfg.u16BlockSize = 1;                             		//块传输个数stcDmaCfg.u16TransferCnt = 24;                    				//块传输次数,一次传输数据大小为 块传输个数*BUFFER_SIZEstcDmaCfg.enTransferWidth = DmaMsk8Bit;                   		//传输数据的宽度,此处选择字(8Bit)宽度stcDmaCfg.enSrcAddrMode = DmaMskSrcAddrInc;                		//源地址自增stcDmaCfg.enDstAddrMode = DmaMskDstAddrFix;                		//目的地址固定stcDmaCfg.enDestAddrReloadCtl = DmaMskDstAddrReloadEnable;		//使能重新加载传输目的地址stcDmaCfg.enSrcAddrReloadCtl = DmaMskSrcAddrReloadEnable;		//使能重新加载传输源地址stcDmaCfg.enSrcBcTcReloadCtl = DmaMskBcTcReloadEnable;			//使能重新加载BC/TC值stcDmaCfg.u32SrcAddress = (uint32_t)&data_tx_test[0]; 			//指定传输源地址stcDmaCfg.u32DstAddress = (uint32_t)&(M0P_SPI1->DATA);    		//指定传输目的地址stcDmaCfg.enRequestNum = DmaSPI1TXTrig;                        	//设置为硬件触发stcDmaCfg.enTransferMode = DmaMskOneTransfer;              		//dma只传输一次,DMAC传输完成时清除CONFA:ENS位stcDmaCfg.enPriority = DmaMskPriorityFix;                  		//各通道固定优先级,CH0优先级 > CH1优先级Dma_InitChannel(DMA_HANDLE,&stcDmaCfg);                        	//初始化dma通道0Dma_Enable();//Dma_EnableChannel(DMA_HANDLE);								//开启通道即开启一次发送
}void dma_test(void)
{en_dma_stat_t ste;while(1){ delay1ms(200);M0P_SPI1->SSN = FALSE;Dma_EnableChannel(DMA_HANDLE);								//启动传输,所以这种方式到底算软件还是硬件??ste = Dma_GetStat(DMA_HANDLE);while(ste != DmaTransferComplete){ste = Dma_GetStat(DMA_HANDLE);}M0P_SPI1->SSN = TRUE;}
}void demo(void)
{App_GpioInit();App_DmaCfg();App_SPIInit();dma_test();
}
  • 实测SPI主机发送ok:
    在这里插入图片描述
http://www.yayakq.cn/news/759561/

相关文章:

  • 变更股东怎样在工商网站做公示陕西省住房建设部官方网站一建
  • wap网站制作怎么做全球速卖通大学
  • 网站后台栏目根据什么做的定州新闻今天重大新闻
  • 苗圃企业网站源代码wordpress用户前端
  • 电子商务网站建设实践报告摘要新颖的公司名字大全
  • 县城网站怎样做经验h5制作网站开发
  • 做狗狗网站的背景图搜索引擎优化的基本手段
  • 环保部网站官网建设项目审批网络设置网站
  • 安国手机网站设计巴中微信网站建设
  • 网站提高内容的丰富度创意滨州 网站开发
  • 电商网站开发开题报告平面设计报价明细表
  • 江门公司做网站哪些网站可以免费做推广呢
  • 深圳华南城网站建设网站建设核心点
  • 苏州做网站设计的公司北京动画视频制作公司
  • 网站制作软件安卓版怎么判断网站建设年龄
  • 网站维护的内容有哪些口碑好的扬州网站建设
  • 网站建设培训班学费云服务器建立多个网站
  • 高效的宝安网站推广WordPress导航条之间得跳转
  • 烟台网站建设多少钱厦门网站快照优化公司
  • 做课题的网站有多少是备案的深圳坂田做网站
  • 网站流量对比景区类网站
  • 网站服务器 内容更新吗响应式网页设计与实现论文
  • 建设银行徐州分行网站2018一级a做爰片免费网站
  • 怎么建公司网站教程简搜网站提交
  • 中小企业网站建设问题中国建设厅官网
  • asp 网站 源码电商网站seo公司
  • 做网站哪个部分搜索排名优化软件
  • 怎样做自己的摄影网站wordpress上一篇文章
  • dede酒业企业网站模板中国广告网
  • 中山网站建设文化价位全网搜索软件