|
做了一个 STM32的串口模块, 开启了接收中断, 在中断中做了以下操作, 想实现: 将串口接收的内容 通过串口再发出去
测试了 普通英文字符 ,都是正常的。 但是小括号符 就不行,程序就死掉了 ,例如 aaa(2,2“”) 串口输出 aaa( 然后就死了~~~~ 请问 小括号符 不能接收吗?? |
请都大神--STM32F072CB芯片开启HSI48时钟问题
谁能解释一下STM32F0的RTC_IRQHandler中断中EXTI_Line17的作用?
【STM32F0开发日志/评测/笔记】+互补PWM波的产生
STM32F030 PB14和PB15无法输出PWM求助
【STM32F030探索套件】序列之五 外部中断
【STM32F0开发日志---二】+ucosii.2.92移植在STM32F030
上传个STM32F0+5110+内部温度传感器的菜鸟实例
【STM32F030探索套件使用问题】STM32F030 SPI方式驱动ST7565LCD失败
求一份STM32F051 I2C驱动LCD 12864的例程
STM32F0 M0 向结构体赋值进入HardFault异常
微信公众号
手机版
评分
查看全部评分
可能是溢出了!!!
初次配置, 不知道 串口的接收区如何设置, 没有配置到,
评分
查看全部评分
评分
查看全部评分
不能够。都能发。
不过,如果像你主楼帖子发的小括号的话,那是全角符号,占两个字节。
请区分"("和"(",这两个是不一样的。
你的程序只适合一个字节一个字节的发,不能两个字节一起发。就是说两个字节发送之间,得有一定的延时。
或者写成,中断中接收字符到数组,主程序中发送。发送不能影响接收中断。
评分
查看全部评分
好像真的是 溢出了~~~
几个字符可以,但是一长串 字符就 挂了!!!!
请问 默认 串口的接收区 是多大?
void USART_Configuration(void)
{
USART_InitTypeDef USART_InitStructure;
/******************************************************************
USART²ÎÊý³õʼ»¯: ²¨ÌØÂÊ ´«ÊäλÊý ֹͣλÊý УÑéλÊý
115200 8 1 0(NO)
*******************************************************************/
USART_InitStructure.USART_BaudRate = 115200; //É趨´«ÊäËÙÂÊ
USART_InitStructure.USART_WordLength = USART_WordLength_8b; //É趨´«ÊäÊý¾ÝλÊý
USART_InitStructure.USART_StopBits = USART_StopBits_1; //É趨ֹͣλ¸öÊý
USART_InitStructure.USART_Parity = USART_Parity_No ; //²»ÓÃУÑéλ
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//²»ÓÃÁ÷Á¿¿ØÖÆ
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //ʹÓýÓÊպͷ¢Ë͹¦ÄÜ
USART_Init(USART1, &USART_InitStructure); //³õʼ»¯USART1
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); //ʹÄÜUSART1½ÓÊÕÖжÏ
USART_Cmd(USART1, ENABLE); //ʹÄÜUSART1
}
是的,可能是溢出了, 我配置串口的时候 只设置了一些普通的常数, 不知道默认的串口接收区是多大?
谢谢你, 可能是溢出了!正在查看默认串口接收区是多大
发字符是没问题的,在英文输入状态下。
评分
查看全部评分
ST的串口没有硬件缓存区,你得用软件实现,譬如申请一个100字节的缓存区,在中断中把收到的数据放到缓存中,在主函数中进行回显操作,论坛里有很多这样的例程的
好的谢谢!
好的明白!
这样的话 关于软件缓存的动作我就有一个 疑问;
首选由于 ST 没有硬件缓存区,那么意味着 接收到一个完整的字节 后 中断触发。
中断触发后,串口是否还在工作呢?
比如发送端发过来 一个20字节的字符, 收到第一个字符之后 开始进入中断,
后面19个字符 是等中断出来, 然后下一个字节接收 触发中断 ,再进入中断接收?
还是, 在第一个字节进入中断后, 串口继续工作,后面的字符继续 “收” 进来?
如果是第二种情况 那么, 如果 发送端是不定时的话, 那软件上做缓存 会不会 出现 “断节” 的现象
比如 缓存区15个字节, 第一次 来了10个字符, 接收过程中又来了10个~~~ 只收后一个包的5个字符
评分
查看全部评分