专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
串口收发指令
2019-07-19 20:19
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
STM32/STM8
12456
7
1797
使用串口助手发送指令,串口助手需要配置加回车换行。才能正常收发数据。为什么我在程序那边写的指令,无论加不加 ,在串口助手这边检测都没有收到数据呢?
/**定义指令****/
char UART2_Blue_Close[13] = "AT+B SCAN 0 ";
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
紫气东升
2019-07-20 09:59
本帖最后由 紫气东升 于 2019-4-30 10:32 编辑
以下是我写的UART2串口函数,都在这里了,要发送数据时直接调用void UART2_SendCommand(unsigned char *s)。回到一开始的问题,哪位仁兄有空可以帮忙看看程序,是否是程序哪里出了问题,为什么发送数据后没有收到返回来的数据,串口助手却可以。
/*********************************************************************************************************
UART2串口IO初始化
*********************************************************************************************************/
void UART2_IO_INIT(void)
{
GPIO_Init(GPIOB, GPIO_PIN_4, GPIO_MODE_OUT_OD_HIZ_SLOW); //开漏高电平低速输出
GPIO_Init(GPIOB, GPIO_PIN_5, GPIO_MODE_OUT_OD_HIZ_SLOW);
}
/*********************************************************************************************************
UART2串口初始化
*********************************************************************************************************/
void UartConfiguration(void)
{
UART2_DeInit();
UART2_Init( //UART2 configuration
(u32)115200, //BaudRate = 115200 baud 115200 波特率115200
UART2_WORDLENGTH_8D, //Word Length = 8 Bits 字长8位
UART2_STOPBITS_1, //One Stop Bit 1位停止位
UART2_PARITY_NO, //No parity 无奇偶校验
UART2_SYNCMODE_CLOCK_DISABLE, //UART2 Clock disabled 禁用UART2串口时钟
UART2_MODE_TXRX_ENABLE //Receive and transmit enabled 使能发送接收
);
// UART2_ITConfig(UART2_IT_TXE, ENABLE);
UART2_Cmd(ENABLE); //启用串口
UART2_ITConfig(UART2_IT_RXNE_OR, ENABLE);
}
/*********************************************************************************************************
UART2串口发送一个字符
*********************************************************************************************************/
void UART2_SendChar(unsigned char c)
{
// while ((UART2->SR & 0x80)==0x00); //判断发送寄存器是否为空
while((UART2_GetFlagStatus(UART2_FLAG_TXE)==RESET)); //检测发送数据寄存器是否为空
UART2->DR = c; //发送一个字符
while((UART2_GetFlagStatus(UART2_FLAG_TC)==RESET)); //检测发送是否完成
}
/*********************************************************************************************************
UART2串口发送字符串指令
*********************************************************************************************************/
void UART2_SendCommand(unsigned char *s)
{
while (*s != ' ') // 表示字符串结束标志,通过检测是否字符串末尾
{
UART2_SendChar(*s);
s++;
}
}
加载中...
查看其它7个回答
一周热门
更多
>
相关问题
相关文章
嵌入式编译生成的HEX文件和BIN文件内容详解
0个评论
ST公司第一款无线低功耗单片机模块有效提高物联网设计生产效率
0个评论
单片机中把部分Flash虚拟成Eeprom使用时,如何延长使用寿命
0个评论
如何实现对单片机寄存器的访问
0个评论
通过USB用STM32片内自带Bootloader下载程序及注意事项
0个评论
欲练此功必先自宫之STM32汇编启动,放慢是为了更好的前行
0个评论
敢问路在何方,STM32迈出的第一步,却注定了它非凡的一生
0个评论
年工作时间真的就等于3年工作经验?也许你就不配
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
以下是我写的UART2串口函数,都在这里了,要发送数据时直接调用void UART2_SendCommand(unsigned char *s)。回到一开始的问题,哪位仁兄有空可以帮忙看看程序,是否是程序哪里出了问题,为什么发送数据后没有收到返回来的数据,串口助手却可以。
/*********************************************************************************************************
UART2串口IO初始化
*********************************************************************************************************/
void UART2_IO_INIT(void)
{
GPIO_Init(GPIOB, GPIO_PIN_4, GPIO_MODE_OUT_OD_HIZ_SLOW); //开漏高电平低速输出
GPIO_Init(GPIOB, GPIO_PIN_5, GPIO_MODE_OUT_OD_HIZ_SLOW);
}
/*********************************************************************************************************
UART2串口初始化
*********************************************************************************************************/
void UartConfiguration(void)
{
UART2_DeInit();
UART2_Init( //UART2 configuration
(u32)115200, //BaudRate = 115200 baud 115200 波特率115200
UART2_WORDLENGTH_8D, //Word Length = 8 Bits 字长8位
UART2_STOPBITS_1, //One Stop Bit 1位停止位
UART2_PARITY_NO, //No parity 无奇偶校验
UART2_SYNCMODE_CLOCK_DISABLE, //UART2 Clock disabled 禁用UART2串口时钟
UART2_MODE_TXRX_ENABLE //Receive and transmit enabled 使能发送接收
);
// UART2_ITConfig(UART2_IT_TXE, ENABLE);
UART2_Cmd(ENABLE); //启用串口
UART2_ITConfig(UART2_IT_RXNE_OR, ENABLE);
}
/*********************************************************************************************************
UART2串口发送一个字符
*********************************************************************************************************/
void UART2_SendChar(unsigned char c)
{
// while ((UART2->SR & 0x80)==0x00); //判断发送寄存器是否为空
while((UART2_GetFlagStatus(UART2_FLAG_TXE)==RESET)); //检测发送数据寄存器是否为空
UART2->DR = c; //发送一个字符
while((UART2_GetFlagStatus(UART2_FLAG_TC)==RESET)); //检测发送是否完成
}
/*********************************************************************************************************
UART2串口发送字符串指令
*********************************************************************************************************/
void UART2_SendCommand(unsigned char *s)
{
while (*s != ' ') // 表示字符串结束标志,通过检测是否字符串末尾
{
UART2_SendChar(*s);
s++;
}
}
一周热门 更多>