gbibzsw
发表于 2017-11-20 17:14:33
感谢您的分享
米晓乐德
发表于 2017-11-20 21:11:44
666666666666666
hehe5769
发表于 2017-11-24 13:22:05
666666666666666666666666666666
nsz2005
发表于 2017-11-28 22:18:47
okokokokok
若然
发表于 2017-11-30 17:02:05
想要学做一个!
acp
发表于 2017-11-30 19:55:08
支持 机智 。。。。。。。:P :handshake
猫的张先森
发表于 2017-12-5 16:32:30
马克,帖子写的很不错,对于新手很友好
点点星
发表于 2017-12-6 12:38:21
谢谢分享~马:lol:lol:lol:lol
铁甲小宝
发表于 2017-12-8 13:21:06
666666666666
依蛋蛋卡
发表于 2017-12-8 16:26:19
支持这类入门教程
阿杜风云
发表于 2017-12-8 19:38:50
学习了。。。
风雨流年
发表于 2017-12-9 23:56:41
大神,我一直在你这里找关于中断发送的代码,官方生成的product.c文件里用的是中断发送,移植过来有问题,我看你用的轮询发送就没什么问题,不知道为什么啊
bigfanofloT
发表于 2017-12-10 19:00:54
风雨流年 发表于 2017-12-9 23:56
大神,我一直在你这里找关于中断发送的代码,官方生成的product.c文件里用的是中断发送,移植过来有问题, ...
把你的代码发上来看看呗
小叶三千
发表于 2017-12-12 13:53:48
支持一下
yidingling
发表于 2017-12-13 09:11:22
aaaaaaaaaaa
moleboy
发表于 2017-12-14 20:11:24
谢谢分享!!!!!!
小点雨
发表于 2017-12-19 16:15:15
学习学习,谢谢分享
周哈哈
发表于 2017-12-19 19:56:05
MCU工程弄好后,编译并下载,这里不再赘述
喜欢DIY的纯新手 ,这个怎么弄????
brave
发表于 2017-12-26 10:51:00
好资料,赞
风雨流年
发表于 2017-12-27 22:39:13
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;
后面那部分不一样,不知道是不是这个原因导致的