完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
7个回答
|
|
楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因
|
|
|
|
void spi_slave_init()
{ //NSS GPIOA->DDR &= ~SPI_SSEL_PIN; //输入模式 GPIOA->CR1 &= ~SPI_SSEL_PIN; //浮空输入 GPIOA->ODR &= (uint8_t)~SPI_SSEL_PIN; //write low GPIOC->DDR |= SPI_MISO_PIN; //输出模式 GPIOC->CR1 |= SPI_MISO_PIN; //推挽输出 GPIOC->DDR &= ~SPI_MOSI_PIN; //输入模式 GPIOC->CR1 &= ~SPI_MOSI_PIN; //浮空输入 GPIOC->DDR &= ~SPI_CLK_PIN; //输入模式 GPIOC->CR1 &= ~SPI_CLK_PIN; //浮空输入 SPI_DeInit(); // Initialize SPI in Slave mode, NSS hardwere management */ SPI_Init(SPI_FIRSTBIT_MSB, SPI_BAUDRATEPRESCALER_2, SPI_MODE_SLAVE, SPI_CLOCKPOLARITY_HIGH, SPI_CLOCKPHASE_2EDGE, SPI_DATADIRECTION_2LINES_FULLDUPLEX, SPI_NSS_SOFT,(uint8_t)0x07); SPI_ITConfig(SPI_IT_RXNE, ENABLE);// Receive buffer not empty interrupt Enable SPI_Cmd(ENABLE); // SPI enable } uint8_t spi_rw(uint8_t byte) { char ch = 0; while (SPI_GetFlagStatus(SPI_FLAG_TXE) == RESET); SPI->DR = byte; while(SPI_GetFlagStatus(SPI_FLAG_RXNE) == RESET); ch = ((uint8_t)SPI->DR); return ch; } INTERRUPT_HANDLER(SPI_IRQHandler, 10) { /* In order to detect unexpected events during development, it is recommended to set a breakpoint on the following instruction. */ uint8_t Rx_byte; Rx_byte = spi_rw(0x18); printf("%x ", Rx_byte); } 中断里面收到的打印全是0x1,不知道什么原因啊,但是SPI Master可以收到stm8发送的0x18 |
|
|
|
|
|
|
|
看起来这个spi_rw不适合在ISR里面用。
|
|
|
|
不大明白,坐等大神解答
|
|
|
|
SPI_FLAG_RXNE本来就是用来产生中断产生的标志位,
SPI_ITConfig(SPI_IT_RXNE, ENABLE)后,有·这个SPI_FLAG_RXNE会产生一个RXNE中断 如果没有TX,就不要使用(SPI_GetFlagStatus(SPI_FLAG_TXE) 参考如下代码, spi_interrupt(){ u8 irq_status = SPI->SR; if(irq_status & SPI_SR_RXNE){// && (SPI->ICR & SPI_ICR_RXEI)){ p_context->rx[0] = SPI->DR;//// 读DR会自动清SR的RXNE标志 ... } } |
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1020 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
996 浏览 2 评论
2102 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1202 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1621 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 16:21 , Processed in 0.566460 second(s), Total 56, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号