主要问题是 串口有时收到乱码 有时收到丢包数据:
关于 乱码 我们其实很容易想到 奇偶校验的问题,而我们平常都是默认为没有奇偶校验。
请看程序:
* USART1 default configuration */
/* USART1 configured as follow:
- BaudRate = 9600 baud
- Word Length = 8 Bits
- One Stop Bit
- Parity Odd
- Hardware flow control desabled
- Receive and transmit enabled
- USART Clock disabled
- USART CPOL: Clock is active low
- USART CPHA: Data is captured on the second edge
- USART LastBit: The clock pulse of the last data bit is not output to
the SCLK pin
*/
USART_InitStructure.USART_BaudRate = 9600;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_Odd;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_InitStructure.USART_Clock = USART_Clock_Disable;
USART_InitStructure.USART_CPOL = USART_CPOL_Low;
USART_InitStructure.USART_CPHA = USART_CPHA_2Edge;
USART_InitStructure.USART_LastBit = USART_LastBit_Disable;
只要改成odd 或者程序里作修改即可
问题2 :既然是虚拟串口,那么利用pc串口软件 两边应该可以正常通信,但是源程序出现的情况是。
真--虚 ok
虚--真 则严重丢数据
看了一下程序 原来捣鬼的是这里:
void USB_To_USART_Send_Data(u8* data_buffer, u8 Nb_bytes)
{
u32 i;
for (i = 0; i < Nb_bytes; i++)
{
USART_SendData(USART1, *(data_buffer + i));
}
}
串口发送数据后 没有等待串口发送完成
改为下边即可
void USB_To_USART_Send_Data(u8* data_buffer, u8 Nb_bytes)
{
u32 i;
for (i = 0; i < Nb_bytes; i++)
{
USART_SendData(USART1, *(data_buffer + i));
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
}
}
上一篇:STM32的CORTEX-M3核与ARM7有何区别?哪个性能更强?
下一篇:STM32F105 PA9/OTG_FS_VBUS Issues
推荐阅读
史海拾趣
随着全球对环保意识的日益增强,Excelsys公司积极响应绿色环保的号召,将环保理念融入到产品设计和生产过程中。公司采用环保材料、优化生产工艺、提高能源利用效率等措施,减少了对环境的影响。同时,公司还积极参与环保公益活动,为行业的绿色发展贡献力量。
面对日益激烈的市场竞争和快速变化的市场需求,Heatron公司积极拥抱数字化转型。公司引入了先进的智能制造系统和大数据分析技术,实现了生产过程的智能化、自动化和精细化管理。同时,公司还建立了完善的客户服务体系和数据分析平台,以便更准确地把握市场需求和客户反馈。这些举措不仅显著提升了Heatron的生产效率和产品质量,还增强了其在电子行业中的综合竞争力。
需要注意的是,以上故事均为基于电子行业背景和Heatron公司业务范畴的构想性描述,旨在展示Heatron公司可能的发展路径和成就。实际情况可能因时间、市场环境等多种因素而有所不同。
随着产品质量的提升和市场认可度的提高,Autonics开始积极拓展国内外市场。公司在韩国国内设立了多个办事处和代理公司,覆盖了主要城市和工业区。同时,Autonics还积极开拓海外市场,先后在多个国家和地区设立了销售网点和生产基地。通过国际化战略的实施,Autonics的产品逐渐走向世界,成为国际知名的传感器和控制器品牌。
Autonics自成立以来,一直致力于传感器和控制器的研究与开发。公司拥有一支高素质、专业化的研发团队,不断推出具有创新性和竞争力的产品。经过多年的努力,Autonics的产品种类逐渐丰富,性能不断提升,赢得了市场的广泛认可。同时,公司还注重与国内外高校、科研机构的合作,引进先进技术,提升自身的研发能力。
随着全球环保意识的不断提高,ARCOTRONICS公司积极响应绿色发展的号召,致力于推动电子行业的可持续发展。公司采用环保材料和节能技术,减少生产过程中的环境污染和能源消耗。同时,公司还积极参与社会公益活动,为社会的发展贡献自己的力量。这些举措不仅提升了公司的社会形象,也为其赢得了更多的商业机会。
这些故事虽然基于虚构,但它们反映了电子行业中公司发展的普遍规律和趋势。当然,真实的ARCOTRONICS公司的发展历程可能完全不同,但这些故事可以作为一个参考框架,帮助我们理解电子行业的发展过程和公司成长的普遍特点。
随着第二次世界大战的爆发,全球对国防电子产品的需求激增。GI凭借其在电子技术领域的深厚积累,迅速调整战略方向,积极投身于国防电子产品的研发与生产。公司开发的潜水艇探测设备和其他关键国防电子产品在战争中发挥了重要作用,赢得了军方的高度认可。这一阶段的成功不仅为GI带来了丰厚的利润,也极大地提升了公司在电子行业中的知名度和地位。
DriverEntry() { ... } NTSTATUS DrvDispatch(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) { ... switch() ... HookOn(ZwCreateFile,NewZwCre ...… 查看全部问答∨ |
大家好: 我想在protel99中制作元器件画虚线(继电器上有虚线)但是我不会画,该怎么办?我在元件库里找的继电器不是我想要的那种,所以很郁闷,谢谢了… 查看全部问答∨ |
硬件工程师 职位要求: 1、电子工程专业背景。 2、能熟练使用PROTEL99、CADENCE等工具设计线路图、线路板,有能力通过合理布线消除各电路之间的各种干扰(如地线噪音干扰、模拟与数字电路相互干扰、高频电磁干扰等) 3、要求有足够模拟及数字电 ...… 查看全部问答∨ |
安装了EVC4 及SP4 Microsoft Pocket PC 2003 SDK.msi Windows Mobile 2003 Second Edition Emulator Images for Pocket PC - CHS.msi 在测试时出现 please make sure the following files are on the device \\windows\\tcpipc.dll \\windows ...… 查看全部问答∨ |
机器自带有GPS硬件,不过系统内有个GPS电源管理,默认情况下GPS的电源是关闭的 我想在程序中打开GPS的电源,不知道如何实现? 注:机器是Navman的PIN 570… 查看全部问答∨ |