高级会员
- 积分
- 839
- 金钱
- 839
- 注册时间
- 2016-8-23
- 在线时间
- 116 小时
|
2金钱
下面是用STM8S105K4芯片的UART2串口编写的串口发送字符串程序。用来发送字符串控制指令给蓝牙。现在遇到的问题是,我要接收保存蓝牙反馈回来的字符串,以便做下一步操作,应该怎么写接收函数??我看stm8s_uart2.c库函数里只有uint8_t UART2_ReceiveData8(void)这一个,谁有完整的接收字符串代码,发出来给参考下。不胜感激!!
/*********************************************************************************************************
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_Cmd(ENABLE); //启用串口
UART2_ITConfig(UART2_IT_RXNE_OR, ENABLE); //同意接收中断
}
/*********************************************************************************************************
UART2串口发送一个字符
*********************************************************************************************************/
void UART2_SendChar(unsigned char c)
{
while((UART2_GetFlagStatus(UART2_FLAG_TXE)==RESET)); //检测发送数据寄存器是否为空,UART1_FLAG_TXE代表发送寄存器为空
UART2->DR = c; //发送一个字符
while((UART2_GetFlagStatus(UART2_FLAG_TC)==RESET)); //检测发送是否完成,UART1_FLAG_TC代表发送完成标志
}
/*********************************************************************************************************
UART2串口发送字符串指令
*********************************************************************************************************/
void UART2_SendCommand(unsigned char *s)
{
while (*s != '\0') // \0 表示字符串结束标志,通过检测是否字符串末尾
{
UART2_SendChar(*s);
s++;
}
}
|
最佳答案
查看完整内容[请看2#楼]
串口接收程序已做出来了,可以在stm8s_it.c源文件里找到库函数INTERRUPT_HANDLER(UART2_RX_IRQHandler, 21),然后把代码添加到这个函数里就可以了。定义一个数组用来存放接收的数据。主函数main可以直接调用这个数组读取里面的数据。变量的定义和放置位置可以根据自己需要来定。
#define UART_BUFFERSIZE 1024
char UART_Buffer;
u16 UART_Buffer_Size;
INTERRUPT_HANDLER(UART2_RX_IRQHandler, 21)
{
/* In order to ...
|