關(guān)于硬件SPI的問(wèn)題

void YJ_SPI1_CSH(unsigned char moshi,unsigned char ML)????????????????????//SPI_1初始化

{

? ? RCC->APB2PCENR|=0x1<<2;? ? ? ? ? ? ? ? ?//IO 的 PA 端口模塊時(shí)鐘使能位

? ? GPIOA->CFGLR&=~0xffff0000;

? ? GPIOA->CFGLR|=(0xb<<16|0xb<<20|0x8<<24|0xb<<28);


? ? GPIO_SetBits(GPIOA, GPIO_Pin_4);

? ? GPIO_SetBits(GPIOA, GPIO_Pin_5);

? ? GPIO_SetBits(GPIOA, GPIO_Pin_6);

? ? GPIO_SetBits(GPIOA, GPIO_Pin_7);

//? ? PA|=0Xf0;

//? ? GPIOA->OUTDR=PA;




? ? RCC->APB2PCENR|=0x1<<12;? ? ? ? ? ? ? ? //模塊時(shí)鐘開(kāi)啟

? ? SPI1->CTLR1&=~(0x1<<15);? ? ? ? ? ? ? ? //選擇雙線(xiàn)雙向模式

? ? SPI1->CTLR1|=0x1<<11;? ? ? ? ? ? ? ? ? ?//設(shè)置為16位

? ? SPI1->CTLR1&=~(0x1<<10);? ? ? ? ? ? ? ? //全雙工模式


? ? SPI1->CTLR2|=0X1<<2;? ? ? ? ? ? ? ? ? ? //SS 輸出使能

? ? SPI1->CTLR1&=~(0x1<<9);? ? ? ? ? ? ? ? ?//硬件控制 NSS 引腳

//? SPI1->CTLR1|=0x1<<9;? ? ? ? ? ? ? ? ? ? //軟件控制 NSS 引腳

//? SPI1->CTLR1|=0x1<<8;? ? ? ? ? ? ? ? ? ? //NSS 為高電平



? ? SPI1->CTLR1&=~(0x1<<7);? ? ? ? ? ? ? ? ? //先發(fā)送高低位復(fù)位

? ? SPI1->CTLR1|=ML<<7;? ? ? ? ? ? ? ? ? ? ? //設(shè)置先發(fā)高位還是地位1:先發(fā)送 LSB;0:先發(fā)送 MSB

? ? SPI1->CTLR1&=~(0x7<<3);? ? ? ? ? ? ? ? ? //波特率設(shè)置域,在通訊時(shí)不可以修改此域2分頻

? ? SPI1->CTLR1|=(0x7<<3);


? ? SPI1->CTLR1|=1<<2;? ? ? ? ? ? ? ? ? ? ? ?//配置為主設(shè)備

? ? SPI1->CTLR1&=~0x3;? ? ? ? ? ? ? ? ? ? ? ?//

? ? SPI1->CTLR1|=moshi&0x3;? ? ? ? ? ? ? ? ? //




? ? SPI1->CTLR2|=0x1<<7;? ? ? ? ? ? ? ? ? ? //發(fā)送緩沖區(qū)空中斷使能位



? ? SPI1->CTLR1|=1<<6;? ? ? ? ? ? ? ? ? ? ? ?//啟用 SPI


?//? ?GPIO_ResetBits(GPIOA, GPIO_Pin_4);


? ? //PA&=~0X10;

? ? //GPIOA->OUTDR=PA;




? ? *(volatile unsigned int *)0xE000E804&=~(0xff<<8);? ?//復(fù)位

? ? *(volatile unsigned int *)0xE000E804|=0xc0<<8;? ? ? //優(yōu)先級(jí)配置位中高 2 位為搶占位,4 級(jí)中斷嵌套;

? ? *(volatile unsigned int *)0xE000E448&=~(0xff<<16);? ?//嵌套0

? ? *(volatile unsigned int *)0xE000E104=0x1<<19;? ?//使能中斷


}


void SPI1_IRQHandler(void) __attribute__((interrupt("WCH-Interrupt-fast")));????????????????//SP1中斷函數(shù)

void SPI1_IRQHandler(void)

{

? ? if(SPI1_TXE)

? ? {


? ? ? ? js++;

? ? ? ? SPI1_DR=0x123;




? ? }


}

Q9X1H0OLMVCX]OD})EZITRU.png

用邏輯分析儀發(fā)現(xiàn)NSS總是會(huì)有毛刺,同時(shí)MOSI也會(huì)有,導(dǎo)致數(shù)據(jù)不正確。(用軟件控制NSS和硬件控制NSS都會(huì)有毛刺)


熱門(mén)產(chǎn)品 : CH390:以太網(wǎng)控制器芯片

用的是CH32V307評(píng)估板


您好,這邊使用EVT例程測(cè)試暫時(shí)未發(fā)現(xiàn)該類(lèi)問(wèn)題,若方便可將你的工程發(fā)至我的郵箱(lzs@wch.cn)具體看一下。


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频