-
下载看了,非常实用,支持楼主
-
谢谢分享,学习了
-
生活总是为难呀,先老人吧
-
请问哈,与sd的函数引脚在stm32库里叫什么,我只找到了一个人中断的void SDIO_IRQHandler(void)
-
在网上找了的,sd模式的比较少,大多都是spi模式,所以才来问的,我再去找哈,谢谢
-
我刚才把u16改成u8(包括库里的函数也改了),再试了哈,还是老样子, 只收得到前两个字节,而且我单独调过,发送是没得问题的,问题就在接收的时候只接收前两个字节,后面的字节不接收而且后面的语句也不执行,但是不是死循环直接调回while(1)那去了。求指教呀!!!
-
我这里用u16,主要是我看这个固件库里这两个函数定义的参量就是u16的void USART_SendData(USART_TypeDef* USARTx, u16 Data);u16 USART_ReceiveData(USART_TypeDef* USARTx);这两个就是我在固件库里看到的我用的是查询方式,现在在弄的是一个485摄像头,有没有必要用中断来收发呢?
-
今天我又去调试了哈,我专门用三个不同的缓存来收,但是用电脑上的串口还是只能收到前两位,这是什么情况,求那位高手指点哈,感激不尽
-
这个232的串口,如果用一根usb转串口线来连就能完全就收发送,但是如果直接连在电脑的232串口上板子就只能就收最多两个字节,真奇怪
-
这是在while(1)这个循环里面,应该接受一个字节就发一个字节嘛,定义的那个buffer能够容下一个字节就够了赛
-
#include "includes.h" u16 USART1_ReceiveData();void USART1_SendData(u16 buffer);u16 USART3_ReceiveData();void USART3_SendData(u16 buffer);/********************************************************************************************************* 函 数 名 : void main(void)* 描 述 : main* 输入参数 : None.* 输出参数 : None.* 返 回 : None.********************************************************************************************************/void main(void){ u16 i,j,buffer; u16 swdata; u32 sngtmp; //目标板初化, Target_Init(); /********开机扫描*******/ USART_Cmd(USART1,ENABLE); USART_Cmd(USART3,ENABLE); //LED_open(); for(i=0;i<30000;i++) { for(j=1;j<9;j++) { Hex_test(j,8); GPIO_SetBits(GPIOC, HEX_D7); } } Hex_close(); while(1) { buffer=USART1_ReceiveData(); USART1_SendData(buffer); if(buffer==0x01) Display_LedScan(); if(buffer==0x02) {LED_open(); Delay_uS(100000); LED_close(); } } }u16 USART1_ReceiveData(){ //Delay_uS(100); while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET); return USART_ReceiveData(USART1);}void USART1_SendData(u16 buffer){ //Delay_uS(100); USART_SendData(USART1,buffer); while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);}u16 USART3_ReceiveData(){ //Delay_uS(100); while(USART_GetFlagStatus(USART3, USART_FLAG_RXNE) == RESET); return USART_ReceiveData(USART3);}void USART3_SendData(u16 buffer){ // Delay_uS(100); GPIO_SetBits(UART3_GRP, UART3_485_DIR); Delay_uS(1000); USART_SendData(USART3,buffer); while(USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET); Delay_uS(1000); GPIO_ResetBits(UART3_GRP, UART3_485_DIR);}