感谢您的分享
666666666666666
666666666666666666666666666666
okokokokok
想要学做一个!
支持 机智 。。。。。。。:P :handshake
马克,帖子写的很不错,对于新手很友好
谢谢分享~马:lol:lol:lol:lol
666666666666
支持这类入门教程
学习了。。。
大神,我一直在你这里找关于中断发送的代码,官方生成的product.c文件里用的是中断发送,移植过来有问题,我看你用的轮询发送就没什么问题,不知道为什么啊
风雨流年 发表于 2017-12-9 23:56
大神,我一直在你这里找关于中断发送的代码,官方生成的product.c文件里用的是中断发送,移植过来有问题, ...
把你的代码发上来看看呗
支持一下
aaaaaaaaaaa
谢谢分享!!!!!!
学习学习,谢谢分享
MCU工程弄好后,编译并下载,这里不再赘述
喜欢DIY的纯新手 ,这个怎么弄????
好资料,赞
bigfanofloT 发表于 2017-12-10 19:00
把你的代码发上来看看呗
int32_t uartWrite(uint8_t *buf, uint32_t len)
{
uint8_t crc = {0x55};
uint32_t i = 0;
uint8_t aa=0x55;
if(NULL == buf)
{
return -1;
}
for(i=0; i<len; i++)
{
// HAL_UART_Transmit_IT(&huart2, (uint8_t *)&buf, 1);
HAL_UART_Transmit(&huart2, (uint8_t *)&buf, 1,50);
// while (huart2.State != HAL_UART_STATE_READY);//Loop until the end of transmission
if(i >=2 && buf == 0xFF)
{
// HAL_UART_Transmit_IT(&huart2, (uint8_t *)&crc, 1);
HAL_UART_Transmit(&huart2, (uint8_t *)&buf, 1,50);
// while (huart2.State != HAL_UART_STATE_READY);//Loop until the end of transmission
}
}
#ifdef PROTOCOL_DEBUG
GIZWITS_LOG("MCU2WiFi[%4d:%4d]: ", gizGetTimerCount(), len);
for(i=0; i<len; i++)
{
GIZWITS_LOG("%02x ", buf);
if(i >=2 && buf == 0xFF)
{
GIZWITS_LOG("%02x ", 0x55);
}
}
GIZWITS_LOG("\n");
#endif
return len;
}
程序注掉的地方是中断发送的,这么写,程序运行有问题,按照你的换成轮询的就好了,而且咱们用CubeMx生成的hal_uart.h文件中的结构体UART_HandleTypeDef中是这样的
typedef struct
{
USART_TypeDef *Instance; /*!< UART registers base address */
UART_InitTypeDef Init; /*!< UART communication parameters */
uint8_t *pTxBuffPtr; /*!< Pointer to UART Tx transfer Buffer */
uint16_t TxXferSize; /*!< UART Tx Transfer size */
uint16_t TxXferCount; /*!< UART Tx Transfer Counter */
uint8_t *pRxBuffPtr; /*!< Pointer to UART Rx transfer Buffer */
uint16_t RxXferSize; /*!< UART Rx Transfer size */
uint16_t RxXferCount; /*!< UART Rx Transfer Counter */
DMA_HandleTypeDef *hdmatx; /*!< UART Tx DMA Handle parameters */
DMA_HandleTypeDef *hdmarx; /*!< UART Rx DMA Handle parameters */
HAL_LockTypeDef Lock; /*!< Locking object */
__IO HAL_UART_StateTypeDef State; /*!< UART communication state */
__IO uint32_t ErrorCode; /*!< UART Error code */
}UART_HandleTypeDef;
而官网生成的代码是这样的,我忘了是官网生成的还是你的一个教程里面的,是这样的typedef struct
{
USART_TypeDef *Instance; /*!< UART registers base address */
UART_InitTypeDef Init; /*!< UART communication parameters */
uint8_t *pTxBuffPtr; /*!< Pointer to UART Tx transfer Buffer */
uint16_t TxXferSize; /*!< UART Tx Transfer size */
__IO uint16_t TxXferCount; /*!< UART Tx Transfer Counter */
uint8_t *pRxBuffPtr; /*!< Pointer to UART Rx transfer Buffer */
uint16_t RxXferSize; /*!< UART Rx Transfer size */
__IO uint16_t RxXferCount; /*!< UART Rx Transfer Counter */
DMA_HandleTypeDef *hdmatx; /*!< UART Tx DMA Handle parameters */
DMA_HandleTypeDef *hdmarx; /*!< UART Rx DMA Handle parameters */
HAL_LockTypeDef Lock; /*!< Locking object */
__IO HAL_UART_StateTypeDef gState; /*!< UART state information related to global Handle management
and also related to Tx operations.
This parameter can be a value of @ref HAL_UART_StateTypeDef */
__IO HAL_UART_StateTypeDef RxState; /*!< UART state information related to Rx operations.
This parameter can be a value of @ref HAL_UART_StateTypeDef */
__IO uint32_t ErrorCode; /*!< UART Error code */
}UART_HandleTypeDef;
后面那部分不一样,不知道是不是这个原因导致的